From 21d32bacb70c661d3c527435dcd9a82dacde8ebd Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sat, 29 Mar 2014 19:01:28 +0100 Subject: [PATCH] gdx poi3d layer --- data/g3d/test.g3db | Bin 0 -> 80170 bytes data/g3d/test.g3dj | 4748 +++++++++++++++++ data/g3d/tree.png | Bin 0 -> 6257 bytes data/g3d/treeA.g3dj | 177 + .../org/oscim/test/gdx/poi3d/Gdx3DTest.java | 48 + .../oscim/test/gdx/poi3d/GdxModelLayer.java | 237 + .../test/gdx/poi3d/GdxModelRenderer.java | 184 + .../oscim/test/gdx/poi3d/GdxRenderer3D.java | 198 + .../oscim/test/gdx/poi3d/GdxRenderer3D2.java | 164 + .../org/oscim/test/gdx/poi3d/MapCamera.java | 70 + .../org/oscim/test/gdx/poi3d/Poi3DLayer.java | 258 + .../org/oscim/test/gdx/poi3d/SharedModel.java | 461 ++ 12 files changed, 6545 insertions(+) create mode 100644 data/g3d/test.g3db create mode 100644 data/g3d/test.g3dj create mode 100644 data/g3d/tree.png create mode 100644 data/g3d/treeA.g3dj create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/Gdx3DTest.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelLayer.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/MapCamera.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java create mode 100644 vtm-playground/src/org/oscim/test/gdx/poi3d/SharedModel.java diff --git a/data/g3d/test.g3db b/data/g3d/test.g3db new file mode 100644 index 0000000000000000000000000000000000000000..b6bd6857c3f1418c3dc830d1f48af4210812e23e GIT binary patch literal 80170 zcmYhE349Fa|HpS%L|hS}?#KoaL=Zs`D!b#pud2IfoUJod6?IipG>$4&g4B_!sw%0X znr3$$Rg^gDDxs=M)m=CJe?FgQ`Taew?`Ph>_wUIwGrP01voo{XiOKoi8aO6-=*SWM zhdOLFn?2bvG%4AZ95{Sn@{obay(T6X=s$Msn4ts4jm7^;4(iyUORKJ}I<)VT9E86c zJM{H|$*v@ut^62o?E;Nmqii;BV#iBljAgjyx_k0nDqrz}<;juXHj(eOZwFbPT)uv1 z`A(g0ljXsl+yz7AC)`*;mM5RtX8O-KRgx@E-tYG*ZCjJ&!QR4e%+xsP#U7C5$z}3} z8-JlC*?91x_ao)MsCa@bPhMOiKz_})KC(R6S8zd;{OW15$nxZn^KSW+ge0;&xx}`G z^8MbJNtP#<^R}0-m2-_OPcEMtEZ?x*QL;SQdF+{dRA3}oo*cI{j6S>I+KXg*aj7kF z^e)G|-aatBxWwY-^ocJ&JmUk?i;IU`lAky;+y|B?muTbAI7PdMkm+6IkcNHb>(y;S zmM7=`e7JnyRy)Y@;uag_JF-uUjq>E63OVwx|8j~fPYztBQj zJlV1RjQrc>Hjw4X_TC%h$LvZY%Y(iDr9{gQ-qDvVPkvf&pM0+pDP(!_<8~e8Ta8*n zmM1@|vs1p_fc9j0@`Dqp@`-)xlI6*n|16;Q3=i%`rZ?PgxBQ^bZ+bKP?UpC6?Q~6k zRkVXFPyQm~iu`wDcar7FE02tnKfd||S)TmKH`;DJhm(4e<;fp!j#2*~hD{;Mliz;# z5xqC?-aazDcwBCReCcnSc){}IH(wqvUm?CNS)QCUBUHZRx_e}Ku&?}qIj)m7n`K+Q zm`rbYTodENHv7tt(|*IUfol%ANAJE8+>Ols;zkFLs((=1);_StAy@b2$QP@4f-Fyt zau{E*|17dRxmupC>Yu;QU9vnms(WYoys=Sad2*%LYx4QtaFFG}-jkEAyPR0I%Y{3V z>BTn=9Hh4bR%Us@^x_9iOUoCycF+r!C!cT^k}qL%ljX_Zm)|BIj%^PtPhNYkxqQKi zNo0Aj>$k?EUFlec&(GB*)05q0t3Hw6x?v7kp4?*XMftr>H(8$i?&=frxl2OG^5lT~2*J?Ko9CvUDDBR^wnbFw_S5BA&XSmvgE>yqWk zjj=zZZxykhED!d)+n~D(&xU7fP%N3Aoc*vwiu~eTX=HhDlM3^C%YUAmK$Zt5?)WKF z{`|B+vOGECt$p;~;zK8p>B&F7Q*MKN%z`0gd9Ww!#tQjbceaw{$tfFxU1?-`a+3|%es*EszV`8DGCkRK1kW#g;*4KTk?F<9u%D(Mx}&cPEDv@^;(xdGaaOEcur%v?R-uf4bOJzTmJaWO=g3xm!MP_yV## z*xM&r^Yw%-97m=Xw>FPMwhQ}qFg@Ax1@?zn9#@Tk(qwvZSk1EZO|}ji`Y(9a@fXh>hElKlq?VSRj6!^{i+^) zK&JPSOPTj*@4!+E$@1i~Z-?l;Y}mxhWO;JvIrHB4@u6I@Jh|i)^IrMs#ja#|a@pAR z8fW>vePnrZwGuiu^DcA+lI6+ueJ9j^=Avn2d2&L;e)$>wTax9;E&7>b(V@>Ck>$w= z=`+;d)n+eQo*b1>QNGygUCHv~il<7-$Kd@MED!e1X|XZ!CLXIFLN1Zz$z$W&%7348 zjVwh zS1{Cd-ra#}1LN z)wDEOp4{N0+llEIv(~EiWaGinF&*V2a-zuc6C^EgcN!VTb?1Qu7ePDWV?ecZ$y|&6%d|-NU-PgOy=WD*s z2bL!%RLP|GY#%m-OfPPX&l>c*E)VyC<;gGO_=BGP!SZDH&Z_jjs2zRD^x`@=)}k+k z=LIZJ#$zSV#|n?97>})c$EqAY4({L2ZYHz8__JaUjuk{zr44P-U_I-hDT!&n;JoyUVv)Ml>H-Riq9riB^`3*9Z@&Q@?dZN zm07M$cpigstP7?WSHycRz2n??FIb*jxon2K{lG!8JlJy`pFz;ydvD=5GQD_Jhg|t< zc~^PB^5E=8hcC&Ws~tm@2kU*1;~YD1@cA(wIWckJIQ2i<_$^Pd?ts$Fn zz}S-HuMZC<%Y!}No+v<%&#&#t^x}Vy+?FqdUH9 zj(i-*cpUUtfqi_es^D=ZJ0io$HvAL6f@3*&@0pP+ykL59rS2i}2R|R~1f%aie(%5R!J@A>oV1!q6I&{BR){mx|d2Pd8wyHoyD-6mvtuy@Y%LVO=_N59^c zOfR06F^Jyv$INgqm|i?HOYf(ybC-vE!SdwU#m1@s$x|iC^5jM4v$JcTwU{hVUfH*< z<{Q>*6`9^m_LVH)a^kh$BKQ=UUVIYo%k=e!WO~8!}zzgZ2=-X+VE&o^7;a-x5{ z6-t&T->lGHzR8)2WO?$hZT8A{s=bLUPu?5RQohxag=Bg1p8B1QuRMrseC0vD*sp?J z^RX_aBleT&#qs@T(Yqd1x#t7Zi|c=PNc|mGCiuYWPfk2kR=zUE0n3x!y@$y=?;j$| zlUt7(Am4iDFtR+^-O>1@A4Zeq$q8#$slWTlb+SCUHntxwe|en$0n3v)&UtwLZHuO7 z#qS<_Mphqkr!C{;)Bfm5mM6Cu94-HKqw8dOa=rO$AM?hyM~b~?D*C`2$3<>&AV_|E5|;Tu zkUY6-q1N) zpD&K1=LpX!na?AiYcii}ZdYV&OW5|v+}^l-lDSQC8zytRt+y@2<-{>eoqraPIWKWF zb6nv$-{pZ1OfPp06!}m4swM}b$V0v+# zlMCg4TfW%`mM6zJ+RJC-JQY};9I>&R{Ldv*$@1jdRg&euKOvSU*T@qpzwVp$WO;Jf z8++w5?=>gOlbd8*k^l6~AhJ9;uAfcblf0EIPi~gyg#6|j#mVwu?`OTMYCpN6&_Oc2 zoBa8s3-Zg#Z6M2&w_lwiza7W$V0rS|A1BKn9E|gpKbqGRdEud4`R@ZtlhvQRAR$Tq z+l)bEdGc!i_^WaL5G+sb=9$yS^WBtx_E}4^Jh{N!CG?ivzMo7l&UgBPyyNU^J1G-|()u+dw=R*MPw4L*8_JntU%@_W{e3 zvm2VnWM0VvWO?$}<~)!4lTi_5d9ddj9G~zpOskMXmM3FhB+va4_E%!=uO_B;6z9Aj zNmhSwHeMU@>rRy<%Y(huaje4e=afk&%adR3cu9Wkz>8#ga_hDS<+sn-OO_{NUnkFf z9rlM}?hlJJO%pG$2a?sFTzHkP6}son?M9X-SH`(%F3&7n{{qXCtKf5-mUDkoviuyd z2iFQ8e!A5C&7O5+c{1PE==om8_dYV;@Ax>A`8e~rAoKC(^F`)!bS2@kIR3N!WQ|Gw zZ)Jk~psev^dGbVT^G%V7`<-y*UI^?QoumGxzAozvb!!{5 z$iaiI$cOe=N>+bz(MeV1gSIUs%ahAhiIuk(XiSzDn{!!~J>PI&IdcxsFt$l2meY=F z-{s6UDK1|zRNnSerVp%f#LfB{|FER5e6xPWlW|?uiE(&cmDecAxGt&do@8F@%9s_;_>eLlQ4}=efc3;;p#;f^l32vc|i? z>QCN`b0G9*mTxA@lfTFDJpGfPShBp>F;D)#PS@PuJLbugkLC=acUSu=m`pFe)~2ca zYwb_D!SZ0s=HI9FOYKOOCl{~TTm4I~*hZEomk7@?{^1$2@!&F_&63YQbOKpkd|LNi zxa}XrT4hd$$&(}F&2|56(GD`bOZ?^>j^palX0H|b<{Wu)*r!YB6Vp3gBh!n^2N##0 zcVmSGmIu41HZ%9JM7KRiruULp%+oQp_a(#f;ybzz#9OLthI_>wyMu6WqqlI*HTM_(>uBW6xUF0sZyr4EVD%^aTJ4aJtB^yMC(m55O}^7OA6cF}d85|L zTYXgyS)QDWb9WrS@}mo6dGa^r{tC~Z1KN}6#aV-O4CBFh9yeH?yc_4PF^=a}=t#0W z`RAJv@)u)*$@1g_QD&Sq@omZS2| zUG)!GnogD{C*fF^kHgJU3(552!REdx&y`AN-C%igKXc6K*}HHYS)SZ>NV3N1-yxSQ zPp)r{F|xZXnntD_5&94rrZUB&ws`(MWK6j+{ot8NqdtL=`G<-zVww{)$|T@Kp-m|i?{#1i&**E#yY z4VEX*8mwb=cXd1_V0rTFu$t;0gMAlRo}5~Bf_&vadXnYI^Q)WVD<{tVgXPKdMw(-) z@_)}H%aa#Q(EUs95@piK^5jLhCdK6}-K!#5p8VPO`t0m_aO5_bUYwDrYkaPYk1xBy z^5n10XLIh0$nxY{rF0DM&5OqzOi%W9{2-R|b?r`xCaXWW)z2RJZ6lVD%{XB99PNi) z^WHvAmM6#J{tAw>+);=uPp)LPAJ@w`rwx`T_cEWY5;xBW=3F3WKeH)S^Pg6YL6**1+|{K^C`nEzbl_ukk0rmH?4L$EwKrIuMv+}lQ$Cx1{* z=VV;d1`Q(1lczq@eOa#58KGo(@;myKlj$nxZcqas|}@g6hq&Q`KKIc;$Oed1$0 zhG2TJ2m4j_{}$&N!0J!_4)+()U&iq{Sf0EU+aW!+F|s_^Gt=yUT-$#3kmbq0m}~2< zMbQqjJoz&2o8t3wVC_Y+Jb5MVd!fI*u{c>C{9_Kb!*nb&?nNZilU-ZhK2Gmy8Bm%` zFXnwR@Vqxh_tJoQ{|v7$@Uxq)HQ;d*^KrvtE9PU1YYk#tYw)}gI+Dxd&V&0gz#Ly( z7x#f^`HwyGfazTajy=n+hx;+oaj!^j)_5|#_&z?H!@K$oo01KtC%fL;vrc{=)*CDj z_O|kAe0Rafi)4CnoL%o1ZruCf1W;y28CafNsM1;WkH&KimM7=+pF^mI`Ge)jFX8{=_z}C($nxZJ z=A4PU0-gu3JlW~r-#UK{Aj^|W;cqxjINndd^5lVdPl9*-(_}K4p6tnM&I7nUjR_{p zlY`9rj%yjVC9pi$+uOXZ-7i17K&BV>H1}1yE}#!s{mG;J$E(#k;r4`>2ku+APat!j@MT3EkGTtn3?Q?=c#S!pahJmRSg<^p*Sod+yx#q|TYxyKTL4*o zz+T(_z4A41O%N} zBhJZ?<-v&s{pX7|J?u`F2RDiGFY~79g~-NFFO;=8CRpQtQ+pFx9{l6S{&OH(N){l? zgFSh1pC^~|^oZhQd2(5EuF`#e$wIO`ImW!dxUbY}PL?OfZ*8t|t^{S0jRy}NwMPEw zvWjGRa$9rm$Z|wQlj+H>1l)6Z6C7E+HCZ0)DVEw%z6kES1Iv?fe$V(hGkFeB%=3Zo zeepyb`&M(Z`jZ!$bLm!fd_MpzPi}~7xOf~aH=ZA`JbAcz9<2s-ePnrZPyh1Q$8ic+ zo{V{E9L}q*+2>e!XH6ih54nkd%)IGtvhm+I5K| z%acDb@0C`ol;LD~@>f^%nZjy|>zQDA@;_!@Z8aMdNjBpTigX8?^Y+%uLz2nz$uq$SyleLLY5~ltDy6)Rzuw92$l!CXT3B{;{;DQ zLzX9xe6@gl;IRf|d2%~*%x{I@ayeL@++qFz^$)>)-C*OvU0iw(vWiB}B+HX~<tRWWcfxDrp6CuigQwiEpu z6`DhqC;Muf{*C`iCd-p|;QgKbT}=|m^5l%2*X8RpC`pzl=i;-H6aDMm96**Q|5fyw zd|b6DWO*{bo8v_Py6+Eq{@omLiYrjQNxvChu=&kf3yZ=9P&mM5p;9F7yq(-_w`!N!B<;d&N*Bb@67%aiAu>x@=o z`z*5Q4_@?1s`@818b+2E=i4aX@W^fNqI?_W$)BVc-{9^}vOF2rqD+5${sNo+;N{r< zomd_|*I;>a+W5A{S3gKL9=sgK7*6z$KQ@spFUIv3`OPuj<>vZ}6%Wq9XAt^2EryeA z_-FX9d&c(<^k)2Z&v@|mAMVO0ZdyZ@C+`T`Z2XPhWaGhEcn@`AOzW>$vb?xmNBO3> z#+}u!qdfWf>!MYB>WkL}d2f+i^>2mmJ%QDq{44e+PK@8Fu8%A){?qG&vJURQ?9QnTW0?6`YUe9u(e_z}S?Z2KS{-KX~ockx@UhO{S zaVGDy%~1b--wYvZ9P)R#zRYo6@0m`PCvU@NG5M1rWaGhG{p&mM%{gRw^0)qLQc1UC z$nxY(xmhkJ#vhFPvBC1>&HnE|4XN3iEKmO0|9lM#N+!#bzsh>#a$=mJqlb{?$zOI$ zkso&J8d;va6vq`#^zVPKIa!{Zj^i}?zG)lC^5nF%4f4J2;j>TL26^#7^ZM$wf3G)f z;6>xfIL3BjoLcb#lJ zc>b}8>fbTv8d;t^(Z9X9_ctZWi~ai(_jhf*6aD)W^3;#bIIb^elGPvVUf;qT_r}e? zM3yK2I7H`Kt*E*_vOGB>zpimuWxf^5lgIk+4~hTj9$B8e0FT=!tZ$R2HOcbiCI0(E z8nzftmM4GurTHw`aC>*M@!*xeo8zu}(R<1A z+cQ1!%BM@M=uvCP^5jjpkBB~@R|Z+0y#1eG`NR_Y$nxYvzvsx;e4Ip<_p{cQjQ(Qw z-{U`yZT_W$tp4QvrFBl#vU0P?^5nBabgjXPkG)2gCl7G$)@QoLb#{{F$qVAP%D0$& zmn=_S{G0C6u-u_BWO*{43-#x7f#*xi=W9$-Ps2UVkj;F->ssj=iq)%B2w9%|x&Qv0 zUb&OW#)HqBYjf5R+>Z~ICtphHsmEkkt0!c6u$9l8BeFU!4j{{u3p(Z{rsK0-+T2rQ zdhttPqvbcQyJvyr$;EMwfc>{^J5H7-7wq0y{?NW1WO;Jkz(Mp@f!2-5^x}qF^t}ly z_{nt(EKhE9FGc-BP97)AlUsG!D(@JQNtP#fda^-;d9EKhDQZW_JorlSyesGxcwEv8x4Ee{zwX*X2|Go=KJ` z$GPXZ4&wfe#}`kK<;gYhIUL@~Q|T<3UL1RMihN*^-WFJ%To0e^+258snJiC!3CC9) ze@4?ZGQGGYzOzrCax2OL%ag-qXuj@ux&@Hs$`0a;2k)OL{}t{H0LzmL;u6$-pKHEHfVB_c*>MlKDQ!_f0b2H}iFUCf=~BJz2{}#%o8OuNSP7~wIA^5zJ0g$8&7M>Z^!-w`y4U%IoL0WwT}um_j_~S^?Z4> zuiM>EeYg+A>ru?tqhp=EFW~mPJD#j{A?KZ;;~Dp!*eJ3*IbYj3`rCbFGsyB__a7%i zTi=Kj z3^!Q)!B#+teeyT4E?{}E`#+pF=J^-CTEG2LxOB_6#Dc4>{i-XXW!Rd_a~bht$z`=&Yi69>MbD z64|>=|GC}Braw6N^NsSjhC-Gn^D$4yGVn2vz`X}xE2`L5vigvtdvB00J#9Z(o?Pi( zihS|Zqhxt<;b(Q_iya6e%aem*ugRDBv?N)cT$@1jV*sjvCJZ+}WBg>O3 z;rO3E0lx_VmKPuFDBp0w5UbL`j`HL>pR|>Co;XC7C)dP1U>v91))cZlx$-w=IjhZE zL6#?%f3Q&f>s<;b%adbpPZ7r{^C*lg4|ZS9)b~NG!d)AX<;mCE9^~uJDiG};%agCU z0_F2N=8@&e{~o?1A24(WS)P2??7OTyBTkX!$#|`)KVNrvJ(Bg>#A{Z}*X)&Y=ChBj zQxsW$OTOxV&$S1nk>$x3_vpRJ%7fop0h@V&Pu4N(7&OO0mM8BH)OTB~(EK~d^5PHm zUSQ##S@-S_TN@AdWti)9#b!?-%aeckQu|V?^t+G9^5k=W&*W>_vg7p*mM5RUH3IGv z9{1Z#rWb#AqpbQD&ROpUt3Mg@lIOgzJYp?d;5x%teyo?6>xFd}<8iQR+V{JhxL+=R zhg>qp6jy&OLB7g{APX!{u7U5bInn18{3Zrio?PqlP5F5ICI(oZ93L4jzi!bqvOGDi zMsfK~I5q~$lVh7l%4gy?F~IWVN>4}AXOB-vBGZebaPJF!ftX+mEKjcbP8j_UTbr#S z(~E0F@1^(PJ6RT(UR)KQYv^a-F#*eyqi`=SefL7G$@1h1=DczCuBUg&^y27G3b>rO z@8tyE6T$T2n5!Oo{zi=jrWYrCy@KAe66*z~7uU~;l3$C*7A#M${rfz5{=NrTo?I(u zJ$?3Nyw`*24ZlB#K5@tAH?3OlYnv3u#l_LP?31orU>p94>o>kjpPjFFRSQfnu6uZZ z%LyI{4~90}zR$)PeqecWS-f7H z7_%6Tlfm-jN^`Y+dh_EqWWe&|>LF{?ANL`X<;hJJO_MKo;Y<`2AN*mV3+nMiLV5Av%vD?1pJ1f6ZbbTbdhyE}wLSAbVGB$zZfv&O>`@^DEU-Me$>8BGC;Hs3+k`AnPQ>{K`rqgE zCd-qXO-!Qq;JZj<_{6=8;c1}|ZEKhdf zcpg6c@PPJYdNDQ<`QdlATHIjpFPq$?Qku&No{h&GEDv^nf$L>Eaj#e-rPd9W4o@lKZ$W46Y*EU-Me`2AG*>E)`D z<;nRzkCvZ}&*orxa-NTF%lDW+fGkfAo;^jrZEgZt9_+r0>rGsqkD5o4<;hpqUX<_j zVQaEH*s|j{1lYeZwtuiZne(ORytr&+ERXvO>?g^i@wo}C{$ML?g6=o)hD+=OO_{ZEIyIm`}n;yGQD`qLH$OJ_ZGf$2bL#)fqg9dU%_{x z!SdwPkPSxY%i^O9HmM8D+sLvq2IDAhZEKff9Sf4L^k^eR!oBrUn zjdi}oS8`hjS)SZs$wJMy)THZVdGgS;`i`xyFzy`%%ag5Sofq=u!|!x~<;ni<=Ib|t z@Y_KelfNT$xv9>d_!=J_M^=CGccY`&$9v_&gJgQ~_6<4*;=Sq*yozA^1k00C2j7%0HnJ>Po_x8=JLm- zC3wN=Pri4ttH#N`xrQuHzHc4}@9(FUlI6j^{4;e9%KO{lOJsR+@rydw_SyKI zP4gZhF1e_Q*6UIK{XVe9A(!_*4!8Q?_hbE!1G(HMIAfjU^o4_fn6NWO{MI{w?LpXN~uP<;f*J)_%zs`e}EvJh{+Jv;F7q)|@O)E)Zq5 zt9(%#$?{pC|RCdvA@nyc%S_mK&BVtci0lsF+P8Xtr~u7l3X}z8<~B?&OSBeOXPpz z1Iv@k;5-KVmy1s&%adzWG{0ZhuxA)qo?Lgv3H5*ZaRynQ+&E3w?|gM8RVB-lo7L5I zKwrY$iDY?l`%Y0BC)Tx}EKkO7&B^0;=Xef8pZ9qV1m{V_I8Vaw`}10@o8R}Jjr%>w z{C$9wpBsxm!S5e}Ii{QZZvD>k@8G^Husqlo^OJd9-;WwjruUMY)ZWC$-+SrRRI)s| z;ae&4$6uL7mM7QmZ2F&EmO+*$cO8=H%En_`x#Ivby?Edod*wq*H1~n!$$gU_$QQWk zA}sZE?ddQgS%%$$_JE5C(Dz23}`Q(XX#T{|%N`L#E zzCN%#xqb9Z`D^%19pFm$eHv{p*L2O@HvxBii14 zEgtnHoBrVW=30`k5yk?`lNaVQk7u0;-O2Lgxe@00t;UmKWO;IGmd;iBYGltK8&7Vl zYfru!*Nc;l2Y-0e?8j?Mp>&`IlVc`14)>`BH(A>jdI7jb0 zK75YzeV7xaamcA5IW{2+TT@Vfuq-SJgEsU-j<_kmbeg%yC!rqYJ*- z?aXnPxQ*E!sy!X;o888258|)|ns2qS6MeJ8bj={IsCl70wuKpE|?Ig>Sr<>n0@&&vVK$a)Z2r|cqd9iJS<;fqc)AQ)P zg?WML#Z%2SS?}==GJRlq^0@m2IA8CLOZ~|5VS z`Pu`sJhg(7$?WeVzujlE`nXH%Bg>O#7n~{I=^>t@g4$pC$V<)fo-YZ%$p%(`aa)}a z_a(j3#J9Aqj(^DR{W!0lj`xl~@9h&W=5;P`cBgCdza7dI)06odr)2)dDSxMw%-<=+ zIGmUM_R>`RW&rr-0|(t;{u7^0Gxy-v{1%xQ=e_mYIGZpIzI&zL&mr?SbN<3LAoAh`*T@Xq z+4j*$`O@u|kmbSd`$=czU+S=eEKkO@DtTV3!ZjE3x47nV=2AbgvsfHi{mJL>eJ5Uv ziKu^^EKlZjQhHt+<+W5Yuch)jAQ{*Gbd5M2%gJk1xQ68-^BNYebBTGK3)jNLycUM* zWnx}0<8rb;my_#4#`0@@$y{GPCS*Jgy1(%-nD;c|zRg53@7u(^onqeGneoaralK(v z$Ts}5$h-%V{c+!;)#!1C#%%RjAX$CLZO=WDuQ~JyS)Od|4wuKZ5wg6vP;2>WI0tJL z(re!$*E-!-zR#L8vig%TCbvV2V`9Ey&KG^e?9(_tRXq5+RI>h-+~}OSk8$wt?a9W2 zn`D^lbVG6N5-d+ntZuH;4Q;-TY&^J|`Fv+huI3@jle>SQeWvy9^3h~@a?e4LTArym zhY6M^_pYYbmo@c|on+&|!w%~G$VzEnoGed%yO`d0tkm$bWO?$mN;;2Wz29*LS)Tmi z1RdvCgKpm@%adoB{kiozu6={$$wT_tw4CnBkz{#t?~9@G4ZC+H%adb1zp3NK*pDZY z>3!t7{^QK}bKA)B@KwWO;I>JYD5q#<_8@JQ>T7 zcpm+^3|LMvm$N=T|I#=7Y!+Gl$@OsjK;NiEG+CZpvw5U^^V%cH@?<<#@_elDc#8RW zVj09-hVYub#r2c$-zKQpTYpQgjAL5Pt0vB!g5}9kn>WeV7=Dy2PsVFcKIZ6y=hrKJ zx;?qekhg9~`b^5o!tI?r!~zLr3iCx@Erp;oEPon(3O$^@4a z|MQPicejr{lPBY`mFHuN$6w6HAJ36k&lk=) zaNirbrnE2AoO3X|G|c!tk-kuKkFFI7F7VVWL-c@oWX+2l@Q&G6_mBT;Cp3r-zM@ctWp1k{Ay$^bCk1R`;C-3Q@_Y3ds(o4z4gZK8;=TPr0+;0Y!C;!yd zTwl1=wl&#!@IG@7kN4)SD6%~Hm+I!c>rGq_0viv`ZCYB(f8`AaS)Tj{{u=~bulwt# zkmbqe@tq6$hpjzid2xUl=iyrXW|X;?!%NOB6{7x+0@sn%pL{M_pHsY#1`j724?gRE z+#caq?ZC!^k6zOGN$)cpM}g(RR-DuA>W9}w*ukUXUbxSK9DgQBzEt29F+G{rM%h0! z5#NUd(~|>xRitAH7OuNRxeUcjAf6t`G=RK3W=a9?K`wYpPFPZl! z();gGlqd6^Mtc7}jq+gKk4Nvn2U4EQ`}g4a8wg^IFXsJz^!d&Ge(W#iy?ONhd-LSU zyqAyOe=narnfI{K`|n|sC-WXTdjCCg@?_pqNAJI*x%q&mFv6j65xJ#Zq1n)uY?>|nHC*xR7-hW&tPo5LJO}-!QA13qhA%EC1M840I zEHOQK3hp`K_^rN}Af_k3kMEArH|TjmOi!NsPG9**JceX?@`t#`fc-1r-Y_yfdG=>f z^5L%*5Yv-W_AQmKe0_ME zRr$u*GsN`d@kPz@G+we$EDs)auetiy-_}`7Paau0Qa&Enn#uI!;iK2f*K2fLOiv#0 zr|Dm#7w(4v)06w)zq!EWtky70Oi%8C`%&qm^7a$clV8Di(&;Nr%n;L)JMF$GA2GMM zn4a9BoY~I9=SPU?$@m_D`uo3ApyeUs9&&mA{p9jw+;cAPzyDmGjC<7O{oi$xC*%82 z^8W8e$&>2_4wCnOmr9!sr^I&-Xt$UC0 zFZhKw;}{RlXO7?88@|761^z#N;Xlayp9jP1Z#NkKf?s$uj`84%y<6Gv&)ss*6;3eOARbde3#YOuA%MNZn$5iM;fQ>TkTb4Snxc#+z}B$2cQXdZ9bMQ@`sEYs6L^ z7vcMi9juXy!;Js>p*3RH4a4P<=o8i7c*FE5y$qXi3}c)Q6Q|nn&kDa>*lNFVy5V-2 zR)^WY8a|S0wg2Iy;Rbc-6Y)Q+aN`ZrPn>GljAIz%Oh5E4x??}%EM`rg@t)!9rLF0^ zYZ(r?U`?M8Z}{A0`b7K>tG4lm=?}eY*o+>>8Azx8_8 z9)_1^TLV&>8V*RIPgEb{4bwLZG;GE(jB)z>P#E2@|5=dN>U}f6xa$3H@!jbG#!q_B z>iwTNKCgPQE`1{Y538E-V)-8m8*j!j9^>>Fr(<#}s&@~o`#N)8rLy;u)#JS@7zX>d z7Qb2Dx7o#&Hx8!P-}=2+e%u1%%{azmoNh(U_?3>#uwH38$%cPcr3S67Zq7dpXW6Y+ zx*RfG=_mR`^)cQseNi*Me;nf*v`)@Ds{fd={0~3#KLlMUc}V|J17lyKi%kv~J7Lto z_(Y9Ha$l}NnsFKJM$Wo}%$Wq8MsItg1 z$a1JKWI1GcR5-Fc(us;dI*}Dn6_FK?l~9q$O32EnC}d@16;xGZ6=XG3G_o49Iw}TP z9a#fa6IlaU3l)p3g{+N=L)J#tLDfapLDoaXBkLjSqZ%OVBO9U;kPVTIP>qp|kT0W} zAYVo%qFl&Cq#I=+-N>e>X2_<<=BO6P=E#<)R>+pf)~Ghf*2uP~cF4BK_NWfX_Q;N? zPRNeP&ZsWP&d9E)SCCzi-B7P0yCJ)ydLX+ad!l+Fdm?QpZTKLEira|;+Xu_EKuo!n zum!2OodjX~V3}43Q*I?}!76Si!Pq`nriEh4t%R+(irYzXY#%JsN@2>agsqH<+esO0 zA1u?#W6G_B&8gyc;>7mBGOZG(+)CIgtGJz1#`eK7ts17>O4zEaxSdqT_Q5i(7N*=v z*lMe|oz%wm!7{BLrrb){>Z`b&)W`P0GOZD&+)CJ9R&hId8QTZTG&iQ)O4ypJxSce` z_Q5i(C8pd;*jlT&owUaG!7{Bqrrb){I;yyxbj0?-GOa77+)CKGskohV!}h^4ttY13 zO4w{Fo2|F4kF782HDq68KU9BYKjZ+^>&OAfB-B7;5^@k~Fme!b2x=&D2yz(e4dgK7 zo2cQ)H<7(jeUNN@Rh(B}%!6gx08BY2wj>qjm4tb)OdEnJ=fpNl#d!_GJXogn#+36J zVH;^1g&K_`R6~`Hczh{{?7E_MG z_Lhp{yoJAKnKlAbjxpCZ&o&>m068D|5o#gwBjm@ZMaYkli&38-7bBOTK1D7;E=4Uv zE=8uHmLt=UD^M$uE0A+h^N?)wRh-v+%!6gx$Cz?XY>QQ#*J8|rW!h3qIVZL>73Y

r`Cdby!c9X&W%* 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 literal 0 HcmV?d00001 diff --git a/data/g3d/test.g3dj b/data/g3d/test.g3dj new file mode 100644 index 00000000..997a15bd --- /dev/null +++ b/data/g3d/test.g3dj @@ -0,0 +1,4748 @@ +{ + "version": [ 0, 1], + "id": "", + "meshes": [ + { + "attributes": ["POSITION"], + "vertices": [ + -44.509998, 15.000000, -48.078999, + -44.509998, 0.000000, -48.078999, + -43.915001, 15.000000, -52.787998, + -43.915001, 0.000000, -52.787998, + -41.426998, 15.000000, -54.946999, + -41.426998, 0.000000, -54.946999, + -39.555000, 15.000000, -52.331001, + -39.555000, 0.000000, -52.331001, + -27.945999, 15.000000, -62.484001, + -27.945999, 0.000000, -62.484001, + -27.465000, 15.000000, -65.924004, + -27.465000, 0.000000, -65.924004, + -25.465000, 15.000000, -67.649002, + -25.465000, 0.000000, -67.649002, + -35.355000, 15.000000, -80.039001, + -35.355000, 0.000000, -80.039001, + -38.505001, 15.000000, -80.440002, + -38.505001, 0.000000, -80.440002, + -74.762001, 15.000000, -84.570000, + -74.762001, 0.000000, -84.570000, + -75.042999, 15.000000, -82.355003, + -75.042999, 0.000000, -82.355003, + -139.567001, 15.000000, -81.752998, + -139.567001, 0.000000, -81.752998, + -144.876007, 15.000000, -67.615997, + -144.876007, 0.000000, -67.615997, + -150.720993, 15.000000, -56.105000, + -150.720993, 0.000000, -56.105000, + -156.759003, 15.000000, -44.205002, + -156.759003, 0.000000, -44.205002, + -158.550995, 15.000000, -46.576000, + -158.550995, 0.000000, -46.576000, + -160.832001, 15.000000, -41.756001, + -160.832001, 0.000000, -41.756001, + -179.602005, 15.000000, -2.182000, + -179.602005, 0.000000, -2.182000, + -152.699997, 15.000000, 8.160000, + -152.699997, 0.000000, 8.160000, + -150.587006, 15.000000, 2.984000, + -150.587006, 0.000000, 2.984000, + -148.065994, 15.000000, 3.930000, + -148.065994, 0.000000, 3.930000, + -150.292999, 15.000000, 9.084000, + -150.292999, 0.000000, 9.084000, + -144.227997, 15.000000, 11.388000, + -144.227997, 0.000000, 11.388000, + -137.654007, 15.000000, 13.893000, + -137.654007, 0.000000, 13.893000, + -137.279999, 15.000000, 13.013000, + -137.279999, 0.000000, 13.013000, + -136.136002, 15.000000, 14.238000, + -136.136002, 0.000000, 14.238000, + -134.585007, 15.000000, 15.095000, + -134.585007, 0.000000, 15.095000, + -132.806000, 15.000000, 15.496000, + -132.806000, 0.000000, 15.496000, + -130.725998, 15.000000, 15.507000, + -130.725998, 0.000000, 15.507000, + -129.362000, 15.000000, 15.173000, + -129.362000, 0.000000, 15.173000, + -127.764000, 15.000000, 14.483000, + -127.764000, 0.000000, 14.483000, + -126.607002, 15.000000, 13.693000, + -126.607002, 0.000000, 13.693000, + -125.651001, 15.000000, 12.590000, + -125.651001, 0.000000, 12.590000, + -125.102997, 15.000000, 11.399000, + -125.102997, 0.000000, 11.399000, + -124.420998, 15.000000, 12.023000, + -124.420998, 0.000000, 12.023000, + -90.463997, 15.000000, -14.816000, + -90.463997, 0.000000, -14.816000, + -90.189003, 15.000000, -14.416000, + -90.189003, 0.000000, -14.416000, + -82.660004, 15.000000, -20.271000, + -82.660004, 0.000000, -20.271000, + -84.825996, 15.000000, -22.931999, + -84.825996, 0.000000, -22.931999, + -79.911003, 15.000000, -26.705000, + -79.911003, 0.000000, -26.705000, + -75.846001, 15.000000, -26.049000, + -75.846001, 0.000000, -26.049000, + -74.348000, 15.000000, -23.677000, + -74.348000, 0.000000, -23.677000, + -62.124001, 15.000000, -33.741001, + -62.124001, 0.000000, -33.741001, + -61.467999, 15.000000, -38.426998, + -61.467999, 0.000000, -38.426998, + -59.061001, 15.000000, -40.554001, + -59.061001, 0.000000, -40.554001, + -57.127998, 15.000000, -37.915001, + -57.127998, 0.000000, -37.915001, + -158.798996, 27.000000, 128.639008, + -158.798996, 0.000000, 128.639008, + -158.457993, 27.000000, 128.115997, + -158.457993, 0.000000, 128.115997, + -175.410004, 27.000000, 116.528000, + -175.410004, 0.000000, 116.528000, + -188.804001, 27.000000, 136.298004, + -188.804001, 0.000000, 136.298004, + -172.761002, 27.000000, 147.139999, + -172.761002, 0.000000, 147.139999, + -167.011002, 27.000000, 139.380997, + -167.011002, 0.000000, 139.380997, + -170.013000, 27.000000, 137.367004, + -170.013000, 0.000000, 137.367004, + -167.345001, 27.000000, 133.192001, + -167.345001, 0.000000, 133.192001, + -164.195007, 27.000000, 135.417999, + -164.195007, 0.000000, 135.417999, + -108.244003, 10.000000, 115.526001, + -108.244003, 0.000000, 115.526001, + -119.900002, 10.000000, 132.623993, + -119.900002, 0.000000, 132.623993, + -124.133003, 10.000000, 138.925003, + -124.133003, 0.000000, 138.925003, + -107.628998, 10.000000, 150.001007, + -107.628998, 0.000000, 150.001007, + -93.559998, 10.000000, 159.440002, + -93.559998, 0.000000, 159.440002, + -82.981003, 10.000000, 139.481995, + -82.981003, 0.000000, 139.481995, + 27.530001, 20.000000, 83.933998, + 27.530001, 0.000000, 83.933998, + 38.791000, 20.000000, 91.336998, + 38.791000, 0.000000, 91.336998, + 49.911999, 20.000000, 99.563004, + 49.911999, 0.000000, 99.563004, + 63.660000, 20.000000, 111.796997, + 63.660000, 0.000000, 111.796997, + 74.139000, 20.000000, 121.860001, + 74.139000, 0.000000, 121.860001, + 102.873001, 20.000000, 91.805000, + 102.873001, 0.000000, 91.805000, + 105.086998, 20.000000, 81.485001, + 105.086998, 0.000000, 81.485001, + 89.098000, 20.000000, 65.856003, + 89.098000, 0.000000, 65.856003, + 55.255001, 20.000000, 49.091999, + 55.255001, 0.000000, 49.091999, + 47.458000, 20.000000, 50.283001, + 47.458000, 0.000000, 50.283001, + -15.889000, 29.500000, -22.754000, + -15.889000, 0.000000, -22.754000, + -7.784000, 29.500000, -18.846001, + -7.784000, 0.000000, -18.846001, + 0.635000, 29.500000, -20.983999, + 0.635000, 0.000000, -20.983999, + 5.837000, 29.500000, -28.063000, + 5.837000, 0.000000, -28.063000, + 5.202000, 29.500000, -37.103001, + 5.202000, 0.000000, -37.103001, + -0.977000, 29.500000, -43.391998, + -0.977000, 0.000000, -43.391998, + -9.871000, 29.500000, -44.237999, + -9.871000, 0.000000, -44.237999, + -16.959000, 29.500000, -39.439999, + -16.959000, 0.000000, -39.439999, + -19.433001, 29.500000, -30.346001, + -19.433001, 0.000000, -30.346001, + 1.350000, 24.500000, -5.187000, + 1.350000, 0.000000, -5.187000, + 26.280001, 24.500000, 4.119000, + 26.280001, 0.000000, 4.119000, + 26.500000, 24.500000, 3.652000, + 26.500000, 0.000000, 3.652000, + 41.431999, 24.500000, -26.459999, + 41.431999, 0.000000, -26.459999, + 51.991001, 24.500000, -51.662998, + 51.991001, 0.000000, -51.662998, + 21.504999, 24.500000, -63.831001, + 21.504999, 0.000000, -63.831001, + -3.404000, 24.500000, -49.848999, + -3.404000, 0.000000, -49.848999, + -9.750000, 24.500000, -44.883999, + -9.750000, 0.000000, -44.883999, + -10.747000, 24.500000, -46.174999, + -10.747000, 0.000000, -46.174999, + -12.693000, 24.500000, -48.702000, + -12.693000, 0.000000, -48.702000, + -27.157000, 24.500000, -37.470001, + -27.157000, 0.000000, -37.470001, + -25.111000, 24.500000, -34.854000, + -25.111000, 0.000000, -34.854000, + -24.141001, 24.500000, -33.606998, + -24.141001, 0.000000, -33.606998, + -55.362999, 24.500000, -9.161000, + -55.362999, 0.000000, -9.161000, + -50.681999, 24.500000, -3.017000, + -50.681999, 0.000000, -3.017000, + -21.212000, 24.500000, 10.876000, + -21.212000, 0.000000, 10.876000, + -9.824000, 24.500000, 1.425000, + -9.824000, 0.000000, 1.425000, + -10.954000, 24.500000, -2.716000, + -10.954000, 0.000000, -2.716000, + -7.691000, 24.500000, -4.753000, + -7.691000, 0.000000, -4.753000, + -4.815000, 24.500000, -7.280000, + -4.815000, 0.000000, -7.280000, + -15.889000, 24.500000, -22.754000, + -19.433001, 24.500000, -30.346001, + -16.959000, 24.500000, -39.439999, + -9.871000, 24.500000, -44.237999, + -0.977000, 24.500000, -43.391998, + 5.202000, 24.500000, -37.103001, + 5.837000, 24.500000, -28.063000, + 0.635000, 24.500000, -20.983999, + -7.784000, 24.500000, -18.846001, + 159.667007, 10.000000, -8.349000, + 159.667007, 0.000000, -8.349000, + 164.889008, 10.000000, -15.674000, + 164.889008, 0.000000, -15.674000, + 165.330994, 10.000000, -16.275000, + 165.330994, 0.000000, -16.275000, + 164.307999, 10.000000, -16.976000, + 164.307999, 0.000000, -16.976000, + 165.604996, 10.000000, -18.934999, + 165.604996, 0.000000, -18.934999, + 166.701996, 10.000000, -18.267000, + 166.701996, 0.000000, -18.267000, + 170.921005, 10.000000, -24.212000, + 170.921005, 0.000000, -24.212000, + 168.641006, 10.000000, -24.802000, + 168.641006, 0.000000, -24.802000, + 166.005997, 10.000000, -25.481001, + 166.005997, 0.000000, -25.481001, + 155.675003, 10.000000, -11.699000, + 155.675003, 0.000000, -11.699000, + 157.681000, 10.000000, -10.019000, + 157.681000, 0.000000, -10.019000, + -162.149002, 15.000000, -42.457001, + -162.149002, 0.000000, -42.457001, + -152.927994, 15.000000, -57.273998, + -152.927994, 0.000000, -57.273998, + -155.468994, 15.000000, -58.620998, + -155.468994, 0.000000, -58.620998, + -146.869003, 15.000000, -74.405998, + -146.869003, 0.000000, -74.405998, + -151.496994, 15.000000, -76.944000, + -151.496994, 0.000000, -76.944000, + -155.194000, 15.000000, -78.982002, + -155.194000, 0.000000, -78.982002, + -170.087006, 15.000000, -73.626999, + -170.087006, 0.000000, -73.626999, + -184.764999, 15.000000, -66.792000, + -184.764999, 0.000000, -66.792000, + -187.132004, 15.000000, -65.690002, + -187.132004, 0.000000, -65.690002, + -199.376007, 15.000000, -58.499001, + -199.376007, 0.000000, -58.499001, + -187.626999, 15.000000, -48.324001, + -187.626999, 0.000000, -48.324001, + -167.231003, 15.000000, -36.847000, + -167.231003, 0.000000, -36.847000, + -163.848007, 15.000000, -43.415001, + -163.848007, 0.000000, -43.415001, + -69.639999, 7.500000, -94.532997, + -69.639999, 0.000000, -94.532997, + -61.054001, 7.500000, -93.910004, + -61.054001, 0.000000, -93.910004, + -60.036999, 7.500000, -104.318001, + -60.036999, 0.000000, -104.318001, + -69.057999, 7.500000, -104.852997, + -69.057999, 0.000000, -104.852997, + -71.170998, 7.500000, -104.974998, + -71.170998, 0.000000, -104.974998, + -93.044998, 7.500000, -106.266998, + -93.044998, 0.000000, -106.266998, + -94.676003, 7.500000, -106.366997, + -94.676003, 0.000000, -106.366997, + -94.556000, 7.500000, -96.314003, + -94.556000, 0.000000, -96.314003, + -152.199005, 10.000000, -187.910995, + -152.199005, 0.000000, -187.910995, + -157.160004, 10.000000, -181.520996, + -157.160004, 0.000000, -181.520996, + -142.154999, 10.000000, -169.865005, + -142.154999, 0.000000, -169.865005, + -137.192993, 10.000000, -176.266006, + -137.192993, 0.000000, -176.266006, + -185.574005, 5.000000, -176.634003, + -185.574005, 0.000000, -176.634003, + -171.177002, 5.000000, -161.817001, + -171.177002, 0.000000, -161.817001, + -165.518997, 5.000000, -167.315994, + -165.518997, 0.000000, -167.315994, + -164.998001, 5.000000, -167.817001, + -164.998001, 0.000000, -167.817001, + -179.388000, 5.000000, -182.634003, + -179.388000, 0.000000, -182.634003, + -197.972000, 10.000000, -10.887000, + -197.972000, 0.000000, -10.887000, + -191.117004, 10.000000, -6.423000, + -191.117004, 0.000000, -6.423000, + -178.117996, 10.000000, -32.037998, + -178.117996, 0.000000, -32.037998, + -181.388000, 10.000000, -33.819000, + -181.388000, 0.000000, -33.819000, + -187.158997, 10.000000, -23.177000, + -187.158997, 0.000000, -23.177000, + -189.699997, 10.000000, -24.613001, + -189.699997, 0.000000, -24.613001, + -190.481995, 10.000000, -23.177000, + -190.481995, 0.000000, -23.177000, + -194.735001, 10.000000, -167.727997, + -194.735001, 0.000000, -167.727997, + -180.345001, 10.000000, -152.910995, + -180.345001, 0.000000, -152.910995, + -171.177002, 10.000000, -161.817001, + -185.574005, 10.000000, -176.634003, + 93.318001, 5.000000, 113.432999, + 93.318001, 0.000000, 113.432999, + 80.539001, 5.000000, 127.113998, + 80.539001, 0.000000, 127.113998, + 85.982002, 5.000000, 132.190002, + 85.982002, 0.000000, 132.190002, + 98.767998, 5.000000, 118.510002, + 98.767998, 0.000000, 118.510002, + -15.040000, 44.000000, 62.573002, + -15.040000, 41.000000, 62.573002, + -6.106000, 44.000000, 41.154999, + -6.106000, 41.000000, 41.154999, + -19.841000, 44.000000, 35.422001, + -19.841000, 41.000000, 35.422001, + -28.782000, 44.000000, 56.840000, + -28.782000, 41.000000, 56.840000, + -19.781000, 41.000000, 34.341999, + -19.781000, 0.000000, 34.341999, + -24.101000, 41.000000, 44.827999, + -24.101000, 0.000000, 44.827999, + -29.209999, 41.000000, 57.217999, + -29.209999, 0.000000, 57.217999, + -14.913000, 41.000000, 63.118000, + -14.913000, 0.000000, 63.118000, + -5.484000, 41.000000, 40.230999, + -5.484000, 0.000000, 40.230999, + -16.906000, 41.000000, 35.521999, + -16.906000, 0.000000, 35.521999, + -19.781000, 7.500000, 34.341999, + -16.906000, 7.500000, 35.521999, + -16.163000, 7.500000, 33.719002, + -16.163000, 0.000000, 33.719002, + -19.039000, 7.500000, 32.539001, + -19.039000, 0.000000, 32.539001, + -34.405998, 22.000000, -142.623993, + -34.405998, 0.000000, -142.623993, + -40.931999, 22.000000, -130.869003, + -40.931999, 0.000000, -130.869003, + -41.527000, 22.000000, -129.800003, + -41.527000, 0.000000, -129.800003, + -29.812000, 22.000000, -123.288002, + -29.812000, 0.000000, -123.288002, + -20.289000, 22.000000, -118.011002, + -20.289000, 0.000000, -118.011002, + -7.838000, 22.000000, -111.098000, + -7.838000, 0.000000, -111.098000, + 0.635000, 22.000000, -106.400002, + 0.635000, 0.000000, -106.400002, + 3.009000, 22.000000, -110.664001, + 3.009000, 0.000000, -110.664001, + 3.316000, 22.000000, -111.220001, + 3.316000, 0.000000, -111.220001, + 7.750000, 22.000000, -119.212997, + 7.750000, 0.000000, -119.212997, + -22.730000, 22.000000, -136.134003, + -22.730000, 0.000000, -136.134003, + -30.728001, 22.000000, -140.576004, + -30.728001, 0.000000, -140.576004, + 3.009000, 20.000000, -110.664001, + 0.635000, 20.000000, -106.400002, + -7.838000, 20.000000, -111.098000, + -20.289000, 20.000000, -118.011002, + -29.812000, 20.000000, -123.288002, + -41.527000, 20.000000, -129.800003, + -42.155998, 20.000000, -130.145004, + -42.155998, 0.000000, -130.145004, + -53.491001, 20.000000, -109.718002, + -53.491001, 0.000000, -109.718002, + -41.085999, 20.000000, -102.827003, + -41.085999, 0.000000, -102.827003, + -18.049000, 20.000000, -90.046997, + -18.049000, 0.000000, -90.046997, + -19.039000, 20.000000, -88.254997, + -19.039000, 0.000000, -88.254997, + -7.965000, 20.000000, -82.110001, + -7.965000, 0.000000, -82.110001, + 6.733000, 20.000000, -108.603996, + 6.733000, 0.000000, -108.603996, + -69.753998, 15.000000, 42.847000, + -69.753998, 0.000000, 42.847000, + -64.824997, 15.000000, 28.565001, + -64.824997, 0.000000, 28.565001, + -66.872002, 15.000000, 27.863001, + -66.872002, 0.000000, 27.863001, + -69.038002, 15.000000, 27.106001, + -69.038002, 0.000000, 27.106001, + -74.689003, 15.000000, 25.158001, + -74.689003, 0.000000, 25.158001, + -79.683998, 15.000000, 39.318001, + -79.683998, 0.000000, 39.318001, + -97.544998, 10.000000, 199.057999, + -97.544998, 0.000000, 199.057999, + -108.097000, 10.000000, 184.408997, + -108.097000, 0.000000, 184.408997, + -110.724998, 10.000000, 185.867004, + -110.724998, 0.000000, 185.867004, + -112.136002, 10.000000, 183.261993, + -112.136002, 0.000000, 183.261993, + -120.067001, 10.000000, 191.856003, + -120.067001, 0.000000, 191.856003, + -107.148003, 10.000000, 209.197998, + -107.148003, 0.000000, 209.197998, + -99.565002, 10.000000, 201.595993, + -99.565002, 0.000000, 201.595993, + -99.110001, 10.000000, 201.149994, + -99.110001, 0.000000, 201.149994, + -177.675995, 18.000000, 38.283001, + -177.675995, 0.000000, 38.283001, + -183.380997, 18.000000, 31.270000, + -183.380997, 0.000000, 31.270000, + -184.718002, 18.000000, 32.728001, + -184.718002, 0.000000, 32.728001, + -192.809006, 18.000000, 41.533001, + -192.809006, 0.000000, 41.533001, + -194.360992, 18.000000, 40.242001, + -194.360992, 0.000000, 40.242001, + -202.438995, 18.000000, 50.683998, + -202.438995, 0.000000, 50.683998, + -194.313995, 18.000000, 57.185001, + -194.313995, 0.000000, 57.185001, + -187.647003, 18.000000, 48.747002, + -187.647003, 0.000000, 48.747002, + -178.880005, 18.000000, 39.551998, + -178.880005, 0.000000, 39.551998, + -194.313995, 28.000000, 57.185001, + -199.268997, 28.000000, 63.708000, + -199.268997, 0.000000, 63.708000, + -209.701004, 28.000000, 78.445999, + -209.701004, 0.000000, 78.445999, + -199.403000, 28.000000, 87.619003, + -199.403000, 0.000000, 87.619003, + -182.565002, 28.000000, 66.346001, + -182.565002, 0.000000, 66.346001, + -169.873001, 28.000000, 50.293999, + -169.873001, 0.000000, 50.293999, + -168.701996, 28.000000, 48.813999, + -168.701996, 0.000000, 48.813999, + -177.675995, 28.000000, 38.283001, + -178.880005, 28.000000, 39.551998, + -187.647003, 28.000000, 48.747002, + -183.380997, 21.000000, 31.270000, + -189.947006, 21.000000, 24.357000, + -189.947006, 0.000000, 24.357000, + -199.796997, 21.000000, 15.462000, + -199.796997, 0.000000, 15.462000, + -212.048004, 21.000000, 6.679000, + -212.048004, 0.000000, 6.679000, + -212.931000, 21.000000, 8.327000, + -212.931000, 0.000000, 8.327000, + -214.421997, 21.000000, 11.110000, + -214.421997, 0.000000, 11.110000, + -217.457993, 21.000000, 16.709000, + -217.457993, 0.000000, 16.709000, + -225.395004, 21.000000, 30.613001, + -225.395004, 0.000000, 30.613001, + -232.804993, 21.000000, 41.366001, + -232.804993, 0.000000, 41.366001, + -239.806000, 21.000000, 50.951000, + -239.806000, 0.000000, 50.951000, + -240.354004, 21.000000, 51.863998, + -240.354004, 0.000000, 51.863998, + -222.513000, 21.000000, 67.415001, + -222.513000, 0.000000, 67.415001, + -209.701004, 21.000000, 78.445999, + -199.268997, 21.000000, 63.708000, + -194.313995, 21.000000, 57.185001, + -202.438995, 21.000000, 50.683998, + -194.360992, 21.000000, 40.242001, + -192.809006, 21.000000, 41.533001, + -184.718002, 21.000000, 32.728001, + -182.718994, 10.000000, -2.827000, + -182.718994, 0.000000, -2.827000, + -170.735001, 10.000000, -28.041000, + -170.735001, 0.000000, -28.041000, + -190.429001, 10.000000, -38.706001, + -190.429001, 0.000000, -38.706001, + -197.584000, 10.000000, -27.372999, + -197.584000, 0.000000, -27.372999, + -170.975998, 7.500000, -118.345001, + -170.975998, 0.000000, -118.345001, + -180.845993, 7.500000, -110.307999, + -180.845993, 0.000000, -110.307999, + -173.009003, 7.500000, -96.057999, + -173.009003, 0.000000, -96.057999, + -161.681000, 7.500000, -101.045998, + -161.681000, 0.000000, -101.045998, + -178.158005, 7.500000, -93.920998, + -178.158005, 0.000000, -93.920998, + -174.011993, 7.500000, -84.347000, + -174.011993, 0.000000, -84.347000, + -157.421005, 7.500000, -90.481003, + -157.421005, 0.000000, -90.481003, + -191.651993, 7.500000, -76.710999, + -191.651993, 0.000000, -76.710999, + -179.375000, 7.500000, -96.725998, + -179.375000, 0.000000, -96.725998, + -197.014999, 7.500000, -89.089996, + -197.014999, 0.000000, -89.089996, + -80.680000, 15.000000, 79.025002, + -80.680000, 0.000000, 79.025002, + -83.989998, 15.000000, 77.556000, + -83.989998, 0.000000, 77.556000, + -92.958000, 15.000000, 92.818001, + -92.958000, 0.000000, 92.818001, + -82.874001, 15.000000, 102.703003, + -82.874001, 0.000000, 102.703003, + -73.905998, 15.000000, 93.508003, + -73.905998, 0.000000, 93.508003, + -72.615997, 15.000000, 90.824997, + -72.615997, 0.000000, 90.824997, + -81.958000, 15.000000, 81.608002, + -81.958000, 0.000000, 81.608002, + -53.563999, 7.500000, 113.055000, + -53.563999, 0.000000, 113.055000, + -48.997002, 7.500000, 114.713997, + -48.997002, 0.000000, 114.713997, + -46.876999, 7.500000, 112.253998, + -46.876999, 0.000000, 112.253998, + -40.931999, 7.500000, 115.125000, + -40.931999, 0.000000, 115.125000, + -34.271999, 7.500000, 107.889999, + -34.271999, 0.000000, 107.889999, + -30.306999, 7.500000, 98.349998, + -30.306999, 0.000000, 98.349998, + -31.209000, 7.500000, 97.871002, + -31.209000, 0.000000, 97.871002, + -28.722000, 7.500000, 92.338997, + -28.722000, 0.000000, 92.338997, + -42.283001, 7.500000, 86.683998, + -42.283001, 0.000000, 86.683998, + -45.827000, 7.500000, 94.364998, + -45.827000, 0.000000, 94.364998, + -47.372002, 7.500000, 97.972000, + -47.372002, 0.000000, 97.972000, + -52.334000, 7.500000, 109.526001, + -52.334000, 0.000000, 109.526001, + -54.146000, 7.500000, 112.498001, + -54.146000, 0.000000, 112.498001, + -143.839996, 10.000000, 125.377998, + -143.839996, 0.000000, 125.377998, + -141.031006, 10.000000, 127.315002, + -141.031006, 0.000000, 127.315002, + -138.557007, 10.000000, 129.007004, + -138.557007, 0.000000, 129.007004, + -135.854996, 10.000000, 130.865997, + -135.854996, 0.000000, 130.865997, + -111.834999, 10.000000, 112.231003, + -111.834999, 0.000000, 112.231003, + -119.994003, 10.000000, 104.750999, + -119.994003, 0.000000, 104.750999, + -122.821999, 10.000000, 102.156998, + -122.821999, 0.000000, 102.156998, + -126.432999, 10.000000, 98.839996, + -126.432999, 0.000000, 98.839996, + -139.934998, 10.000000, 86.449997, + -139.934998, 0.000000, 86.449997, + -141.091003, 10.000000, 85.392998, + -141.091003, 0.000000, 85.392998, + -145.337997, 10.000000, 85.614998, + -145.337997, 0.000000, 85.614998, + -164.535995, 10.000000, 107.968002, + -164.535995, 0.000000, 107.968002, + -164.147995, 10.000000, 111.406998, + -164.147995, 0.000000, 111.406998, + -54.186001, 15.000000, 129.552002, + -54.186001, 0.000000, 129.552002, + -36.205002, 15.000000, 146.360992, + -36.205002, 0.000000, 146.360992, + -35.616001, 15.000000, 145.792999, + -35.616001, 0.000000, 145.792999, + -24.863001, 15.000000, 135.485001, + -24.863001, 0.000000, 135.485001, + -26.181000, 15.000000, 134.205002, + -26.181000, 0.000000, 134.205002, + -25.511999, 15.000000, 133.559998, + -25.511999, 0.000000, 133.559998, + -28.962000, 15.000000, 130.108994, + -28.962000, 0.000000, 130.108994, + -29.691000, 15.000000, 130.776993, + -29.691000, 0.000000, 130.776993, + -31.577000, 15.000000, 128.951004, + -31.577000, 0.000000, 128.951004, + -29.457001, 15.000000, 126.334999, + -29.457001, 0.000000, 126.334999, + -26.007000, 15.000000, 121.514999, + -26.007000, 0.000000, 121.514999, + -25.518999, 15.000000, 121.882004, + -25.518999, 0.000000, 121.882004, + -22.542999, 15.000000, 117.842003, + -22.542999, 0.000000, 117.842003, + -23.091000, 15.000000, 117.441002, + -23.091000, 0.000000, 117.441002, + -20.370001, 15.000000, 113.644997, + -20.370001, 0.000000, 113.644997, + -34.271999, 15.000000, 107.889999, + -40.931999, 15.000000, 115.125000, + -3.645000, 15.000000, 179.143005, + -3.645000, 0.000000, 179.143005, + 8.064000, 15.000000, 168.858002, + 8.064000, 0.000000, 168.858002, + -16.049999, 15.000000, 143.544998, + -16.049999, 0.000000, 143.544998, + -24.247999, 15.000000, 134.951004, + -24.247999, 0.000000, 134.951004, + -69.198997, 7.500000, 79.771004, + -69.198997, 0.000000, 79.771004, + -79.209000, 7.500000, 76.053001, + -79.209000, 0.000000, 76.053001, + -80.680000, 7.500000, 79.025002, + -81.958000, 7.500000, 81.608002, + -72.615997, 7.500000, 90.824997, + -16.371000, 15.000000, 104.550003, + -16.371000, 0.000000, 104.550003, + -30.306999, 15.000000, 98.349998, + -79.476997, 15.000000, 57.764000, + -79.476997, 0.000000, 57.764000, + -88.417000, 15.000000, 54.914001, + -88.417000, 0.000000, 54.914001, + -96.113998, 15.000000, 71.544998, + -96.113998, 0.000000, 71.544998, + -87.688004, 15.000000, 75.719002, + -87.688004, 0.000000, 75.719002, + -22.235001, 15.000000, 78.068001, + -22.235001, 0.000000, 78.068001, + -28.722000, 15.000000, 92.338997, + -31.209000, 15.000000, 97.871002, + -15.722000, 15.000000, 104.762001, + -15.722000, 0.000000, 104.762001, + -6.748000, 15.000000, 84.424004, + -6.748000, 0.000000, 84.424004, + -43.012001, 15.000000, 69.552002, + -43.012001, 0.000000, 69.552002, + -47.578999, 15.000000, 82.698997, + -47.578999, 0.000000, 82.698997, + -50.575001, 15.000000, 92.773003, + -50.575001, 0.000000, 92.773003, + -45.827000, 15.000000, 94.364998, + -42.283001, 15.000000, 86.683998, + -35.817001, 15.000000, 72.501999, + -35.817001, 0.000000, 72.501999, + -35.409000, 15.000000, 71.278000, + -35.409000, 0.000000, 71.278000, + -41.581001, 15.000000, 68.727997, + -41.581001, 0.000000, 68.727997, + -42.056000, 15.000000, 69.897003, + -42.056000, 0.000000, 69.897003, + -96.862999, 31.200001, 88.888000, + -96.862999, 0.000000, 88.888000, + -92.958000, 31.200001, 92.818001, + -83.989998, 31.200001, 77.556000, + -87.688004, 31.200001, 75.719002, + -96.113998, 31.200001, 71.544998, + -88.417000, 31.200001, 54.914001, + -116.616997, 31.200001, 45.908001, + -116.616997, 0.000000, 45.908001, + -127.810997, 31.200001, 57.686001, + -127.810997, 0.000000, 57.686001, + -62.771999, 10.000000, 181.447998, + -62.771999, 0.000000, 181.447998, + -53.717999, 10.000000, 168.067001, + -53.717999, 0.000000, 168.067001, + -68.141998, 10.000000, 153.317993, + -68.141998, 0.000000, 153.317993, + -77.570999, 10.000000, 170.817001, + -77.570999, 0.000000, 170.817001, + -86.751999, 10.000000, 164.283005, + -86.751999, 0.000000, 164.283005, + -20.704000, 10.000000, 211.235001, + -20.704000, 0.000000, 211.235001, + -12.318000, 10.000000, 202.919998, + -12.318000, 0.000000, 202.919998, + -37.327999, 10.000000, 177.339996, + -37.327999, 0.000000, 177.339996, + -40.717999, 10.000000, 180.490005, + -40.717999, 0.000000, 180.490005, + -51.077000, 10.000000, 170.593994, + -51.077000, 0.000000, 170.593994, + -139.606995, 10.000000, 142.007996, + -139.606995, 0.000000, 142.007996, + -143.578995, 10.000000, 139.225998, + -143.578995, 0.000000, 139.225998, + -146.052994, 10.000000, 137.511002, + -146.052994, 0.000000, 137.511002, + -159.574997, 10.000000, 156.490997, + -159.574997, 0.000000, 156.490997, + -152.485992, 10.000000, 161.600006, + -152.485992, 0.000000, 161.600006, + -147.464005, 10.000000, 154.431000, + -147.464005, 0.000000, 154.431000, + -146.675003, 10.000000, 153.328995, + -146.675003, 0.000000, 153.328995, + -146.261002, 10.000000, 152.684006, + -146.261002, 0.000000, 152.684006, + -142.401993, 10.000000, 146.350006, + -142.401993, 0.000000, 146.350006, + -145.485001, 10.000000, 136.720993, + -145.485001, 0.000000, 136.720993, + -156.156998, 10.000000, 129.039993, + -156.156998, 0.000000, 129.039993, + -156.177002, 10.000000, 129.029007, + -156.177002, 0.000000, 129.029007, + -156.725998, 10.000000, 129.807999, + -156.725998, 0.000000, 129.807999, + -158.136993, 10.000000, 128.783997, + -158.136993, 0.000000, 128.783997, + -158.270996, 10.000000, 128.973007, + -158.270996, 0.000000, 128.973007, + -158.798996, 10.000000, 128.639008, + -164.195007, 10.000000, 135.417999, + -167.011002, 10.000000, 139.380997, + -172.761002, 10.000000, 147.139999, + 134.363007, 15.000000, -18.679001, + 134.363007, 0.000000, -18.679001, + 110.115997, 15.000000, 10.275000, + 110.115997, 0.000000, 10.275000, + 106.638000, 15.000000, 7.180000, + 106.638000, 0.000000, 7.180000, + 91.064003, 15.000000, 25.593000, + 91.064003, 0.000000, 25.593000, + 89.412003, 15.000000, 27.452000, + 89.412003, 0.000000, 27.452000, + 93.859001, 15.000000, 31.504000, + 93.859001, 0.000000, 31.504000, + 93.504997, 15.000000, 31.915001, + 93.504997, 0.000000, 31.915001, + 105.908997, 15.000000, 42.668999, + 105.908997, 0.000000, 42.668999, + 118.147003, 15.000000, 55.827000, + 118.147003, 0.000000, 55.827000, + 128.552002, 15.000000, 56.138000, + 128.552002, 0.000000, 56.138000, + 148.184998, 15.000000, 38.404999, + 148.184998, 0.000000, 38.404999, + 150.123993, 15.000000, 38.493999, + 150.123993, 0.000000, 38.493999, + 154.630997, 15.000000, 34.353001, + 154.630997, 0.000000, 34.353001, + 154.852005, 15.000000, 32.382999, + 154.852005, 0.000000, 32.382999, + 165.216995, 15.000000, 23.021000, + 165.216995, 0.000000, 23.021000, + 165.423996, 15.000000, 13.581000, + 165.423996, 0.000000, 13.581000, + 157.600006, 15.000000, 5.010000, + 157.600006, 0.000000, 5.010000, + 158.054993, 15.000000, 4.498000, + 158.054993, 0.000000, 4.498000, + 64.135002, 15.000000, -42.825001, + 64.135002, 0.000000, -42.825001, + 79.280998, 15.000000, -37.325001, + 79.280998, 0.000000, -37.325001, + 79.474998, 15.000000, -38.027000, + 79.474998, 0.000000, -38.027000, + 84.818001, 15.000000, -36.680000, + 84.818001, 0.000000, -36.680000, + 84.564003, 15.000000, -35.455002, + 84.564003, 0.000000, -35.455002, + 90.100998, 15.000000, -32.750000, + 90.100998, 0.000000, -32.750000, + 97.643997, 15.000000, -44.784000, + 97.643997, 0.000000, -44.784000, + 66.809998, 15.000000, -52.365002, + 66.809998, 0.000000, -52.365002, + 63.419998, 15.000000, -43.159000, + 63.419998, 0.000000, -43.159000, + 111.907997, 15.000000, -41.744999, + 111.907997, 0.000000, -41.744999, + 88.602997, 15.000000, -28.798000, + 88.602997, 0.000000, -28.798000, + 95.203003, 15.000000, -25.158001, + 95.203003, 0.000000, -25.158001, + 98.694000, 15.000000, -30.134001, + 98.694000, 0.000000, -30.134001, + 101.469002, 15.000000, -28.396999, + 101.469002, 0.000000, -28.396999, + 102.078003, 15.000000, -20.527000, + 102.078003, 0.000000, -20.527000, + 102.892998, 15.000000, -21.962999, + 102.892998, 0.000000, -21.962999, + 104.191002, 15.000000, -21.173000, + 104.191002, 0.000000, -21.173000, + 116.970001, 15.000000, -37.236000, + 116.970001, 0.000000, -37.236000, + 117.237000, 15.000000, -37.536999, + 117.237000, 0.000000, -37.536999, + 112.175003, 15.000000, -41.966999, + 112.175003, 0.000000, -41.966999, + 62.375999, 15.000000, -38.951000, + 62.375999, 0.000000, -38.951000, + 60.175999, 15.000000, -34.097000, + 60.175999, 0.000000, -34.097000, + 59.748001, 15.000000, -33.151001, + 59.748001, 0.000000, -33.151001, + 57.133999, 15.000000, -30.011999, + 57.133999, 0.000000, -30.011999, + 57.930000, 15.000000, -29.143000, + 57.930000, 0.000000, -29.143000, + 56.023998, 15.000000, -24.947001, + 56.023998, 0.000000, -24.947001, + 51.102001, 15.000000, -14.082000, + 51.102001, 0.000000, -14.082000, + 46.220001, 15.000000, -3.306000, + 46.220001, 0.000000, -3.306000, + 42.181000, 15.000000, 5.611000, + 42.181000, 0.000000, 5.611000, + 39.881001, 15.000000, 10.676000, + 39.881001, 0.000000, 10.676000, + 35.902000, 15.000000, 19.459000, + 35.902000, 0.000000, 19.459000, + 33.808998, 15.000000, 22.476000, + 33.808998, 0.000000, 22.476000, + 29.329000, 15.000000, 28.931999, + 29.329000, 0.000000, 28.931999, + 30.150999, 15.000000, 29.288000, + 30.150999, 0.000000, 29.288000, + 52.486000, 15.000000, 39.018002, + 52.486000, 0.000000, 39.018002, + 66.716003, 15.000000, 45.207001, + 66.716003, 0.000000, 45.207001, + 68.702003, 15.000000, 43.035999, + 68.702003, 0.000000, 43.035999, + 69.056999, 15.000000, 43.403999, + 69.056999, 0.000000, 43.403999, + 70.581001, 15.000000, 41.723000, + 70.581001, 0.000000, 41.723000, + 72.085999, 15.000000, 40.063999, + 72.085999, 0.000000, 40.063999, + 71.718002, 15.000000, 39.730000, + 71.718002, 0.000000, 39.730000, + 73.737999, 15.000000, 37.526001, + 73.737999, 0.000000, 37.526001, + 74.580002, 15.000000, 38.339001, + 74.580002, 0.000000, 38.339001, + 80.865997, 15.000000, 31.103001, + 80.865997, 0.000000, 31.103001, + 83.125999, 15.000000, 28.497999, + 83.125999, 0.000000, 28.497999, + 87.874001, 15.000000, 23.021000, + 87.874001, 0.000000, 23.021000, + 120.546997, 15.000000, -33.417999, + 120.546997, 0.000000, -33.417999, + -52.132999, 15.000000, 24.691000, + -52.132999, 0.000000, 24.691000, + -50.448002, 15.000000, 23.054001, + -50.448002, 0.000000, 23.054001, + -48.636002, 15.000000, 17.934000, + -48.636002, 0.000000, 17.934000, + -44.389999, 15.000000, 19.625999, + -44.389999, 0.000000, 19.625999, + -41.220001, 15.000000, 11.911000, + -41.220001, 0.000000, 11.911000, + -54.955002, 15.000000, 5.566000, + -54.955002, 0.000000, 5.566000, + -60.605999, 15.000000, 19.358999, + -60.605999, 0.000000, 19.358999, + -60.833000, 15.000000, 19.926001, + -60.833000, 0.000000, 19.926001, + -56.172001, 15.000000, 21.663000, + -56.172001, 0.000000, 21.663000, + -56.786999, 15.000000, 23.021000, + -56.786999, 0.000000, 23.021000, + -62.859001, 15.000000, -4.542000, + -62.859001, 0.000000, -4.542000, + -67.674004, 15.000000, -0.712000, + -67.674004, 0.000000, -0.712000, + -63.421001, 15.000000, 5.522000, + -63.421001, 0.000000, 5.522000, + -67.875000, 15.000000, 9.307000, + -67.875000, 0.000000, 9.307000, + -66.263000, 15.000000, 11.533000, + -66.263000, 0.000000, 11.533000, + -67.594002, 15.000000, 15.095000, + -67.594002, 0.000000, 15.095000, + -68.055000, 15.000000, 16.174999, + -68.055000, 0.000000, 16.174999, + -64.498001, 15.000000, 17.688999, + -64.498001, 0.000000, 17.688999, + -62.557999, 15.000000, 18.524000, + -62.557999, 0.000000, 18.524000, + -73.719002, 23.200001, 14.372000, + -73.719002, 0.000000, 14.372000, + -78.292999, 23.200001, 7.871000, + -78.292999, 0.000000, 7.871000, + -96.703003, 23.200001, 22.743000, + -96.703003, 0.000000, 22.743000, + -91.981003, 23.200001, 28.921000, + -91.981003, 0.000000, 28.921000, + -91.365997, 23.200001, 28.497999, + -91.365997, 0.000000, 28.497999, + -16.691999, 15.000000, 23.099001, + -16.691999, 0.000000, 23.099001, + -25.865999, 15.000000, 18.646000, + -25.865999, 0.000000, 18.646000, + -28.936001, 15.000000, 25.580999, + -28.936001, 0.000000, 25.580999, + -19.975000, 15.000000, 30.334999, + -19.975000, 0.000000, 30.334999, + -1.639000, 20.000000, 2.271000, + -1.639000, 0.000000, 2.271000, + 22.434000, 20.000000, 12.501000, + 22.434000, 0.000000, 12.501000, + 26.280001, 20.000000, 4.119000, + 1.350000, 20.000000, -5.187000, + -66.872002, 7.500000, 27.863001, + -62.557999, 7.500000, 18.524000, + -64.498001, 7.500000, 17.688999, + -69.038002, 7.500000, 27.106001, + -14.692000, 15.000000, 32.939999, + -14.692000, 0.000000, 32.939999, + -11.329000, 15.000000, 25.604000, + -11.329000, 0.000000, 25.604000, + -2.856000, 20.000000, 1.748000, + -2.856000, 0.000000, 1.748000, + -7.738000, 20.000000, 14.026000, + -7.738000, 0.000000, 14.026000, + 16.597000, 20.000000, 25.225000, + 16.597000, 0.000000, 25.225000, + -50.441002, 15.000000, 34.786999, + -50.441002, 0.000000, 34.786999, + -44.750999, 15.000000, 37.103001, + -44.750999, 0.000000, 37.103001, + -41.286999, 15.000000, 28.409000, + -41.286999, 0.000000, 28.409000, + -29.558001, 15.000000, 26.983999, + -29.558001, 0.000000, 26.983999, + -48.816002, 15.000000, 30.413000, + -48.816002, 0.000000, 30.413000, + -15.187000, 15.000000, 34.141998, + -15.187000, 0.000000, 34.141998, + -2.328000, 15.000000, 39.652000, + -2.328000, 0.000000, 39.652000, + -7.203000, 15.000000, 50.316002, + -7.203000, 0.000000, 50.316002, + 2.701000, 15.000000, 54.636002, + 2.701000, 0.000000, 54.636002, + 8.111000, 15.000000, 43.070000, + 8.111000, 0.000000, 43.070000, + 8.552000, 15.000000, 43.280998, + 8.552000, 0.000000, 43.280998, + 8.759000, 15.000000, 42.835999, + 8.759000, 0.000000, 42.835999, + 8.318000, 15.000000, 42.624001, + 8.318000, 0.000000, 42.624001, + 9.334000, 15.000000, 40.442001, + 9.334000, 0.000000, 40.442001, + 9.783000, 15.000000, 40.653999, + 9.783000, 0.000000, 40.653999, + 10.010000, 15.000000, 40.209000, + 10.010000, 0.000000, 40.209000, + 9.548000, 15.000000, 39.986000, + 9.548000, 0.000000, 39.986000, + 14.363000, 15.000000, 29.656000, + 14.363000, 0.000000, 29.656000, + -8.373000, 15.000000, 19.146999, + -8.373000, 0.000000, 19.146999, + -8.527000, 15.000000, 19.481001, + -8.527000, 0.000000, 19.481001, + -55.249001, 15.000000, 47.744999, + -55.249001, 0.000000, 47.744999, + -54.561001, 15.000000, 28.231001, + -54.561001, 0.000000, 28.231001, + -60.030998, 15.000000, 42.580002, + -60.030998, 0.000000, 42.580002, + -61.160999, 15.000000, 45.841000, + -61.160999, 0.000000, 45.841000, + -62.751999, 15.000000, 24.691000, + -62.751999, 0.000000, 24.691000, + -63.259998, 15.000000, 24.568001, + -63.259998, 0.000000, 24.568001, + -78.252998, 15.000000, 20.761000, + -78.252998, 0.000000, 20.761000, + -72.442001, 15.000000, 16.264000, + -72.442001, 0.000000, 16.264000, + -73.719002, 15.000000, 14.372000, + -91.365997, 15.000000, 28.497999, + -85.569000, 15.000000, 35.265999, + -85.569000, 0.000000, 35.265999, + -82.351997, 15.000000, 38.126999, + -82.351997, 0.000000, 38.126999, + -24.101000, 15.000000, 44.827999, + -31.417000, 15.000000, 41.834000, + -31.417000, 0.000000, 41.834000, + -32.199001, 15.000000, 43.726002, + -32.199001, 0.000000, 43.726002, + -35.542999, 15.000000, 42.390999, + -35.542999, 0.000000, 42.390999, + -39.882000, 15.000000, 53.277000, + -39.882000, 0.000000, 53.277000, + -29.209999, 15.000000, 57.217999, + -34.933998, 15.000000, 41.043999, + -34.933998, 0.000000, 41.043999, + 6.332000, 15.000000, 132.835999, + 6.332000, 0.000000, 132.835999, + 6.599000, 15.000000, 128.472000, + 6.599000, 0.000000, 128.472000, + 1.557000, 15.000000, 126.691002, + 1.557000, 0.000000, 126.691002, + 13.694000, 15.000000, 95.878998, + 13.694000, 0.000000, 95.878998, + 8.271000, 15.000000, 92.338997, + 8.271000, 0.000000, 92.338997, + 2.179000, 15.000000, 88.487000, + 2.179000, 0.000000, 88.487000, + 0.655000, 15.000000, 88.253998, + 0.655000, 0.000000, 88.253998, + -0.348000, 15.000000, 88.598999, + -0.348000, 0.000000, 88.598999, + -1.158000, 15.000000, 89.544998, + -1.158000, 0.000000, 89.544998, + -8.353000, 15.000000, 109.214996, + -8.353000, 0.000000, 109.214996, + -9.744000, 15.000000, 112.297997, + -9.744000, 0.000000, 112.297997, + -10.827000, 15.000000, 116.606003, + -10.827000, 0.000000, 116.606003, + -11.482000, 15.000000, 116.516998, + -11.482000, 0.000000, 116.516998, + -14.465000, 15.000000, 126.803001, + -14.465000, 0.000000, 126.803001, + -12.753000, 15.000000, 130.153000, + -12.753000, 0.000000, 130.153000, + 11.742000, 7.500000, 165.173004, + 11.742000, 0.000000, 165.173004, + -9.222000, 7.500000, 143.399994, + -9.222000, 0.000000, 143.399994, + -16.049999, 7.500000, 143.544998, + 8.064000, 7.500000, 168.858002, + 16.583000, 7.500000, 177.462006, + 16.583000, 0.000000, 177.462006, + 18.436001, 7.500000, 172.419998, + 18.436001, 0.000000, 172.419998, + 11.642000, 15.000000, 194.104004, + 11.642000, 0.000000, 194.104004, + 14.831000, 15.000000, 185.210007, + 14.831000, 0.000000, 185.210007, + 13.628000, 15.000000, 184.820007, + 13.628000, 0.000000, 184.820007, + 16.583000, 15.000000, 177.462006, + 11.334000, 15.000000, 133.537003, + 11.334000, 0.000000, 133.537003, + 11.956000, 15.000000, 133.626007, + 11.956000, 0.000000, 133.626007, + 26.527000, 15.000000, 146.639008, + 26.527000, 0.000000, 146.639008, + 47.130001, 15.000000, 123.663002, + 47.130001, 0.000000, 123.663002, + 23.912001, 15.000000, 102.546997, + 23.912001, 0.000000, 102.546997, + 12.812000, 15.000000, 116.717003, + 12.812000, 0.000000, 116.717003, + 7.201000, 15.000000, 132.957993, + 7.201000, 0.000000, 132.957993, + 58.257000, 15.000000, 156.179001, + 58.257000, 0.000000, 156.179001, + 49.530998, 15.000000, 149.610992, + 49.530998, 0.000000, 149.610992, + 48.541000, 15.000000, 150.947006, + 48.541000, 0.000000, 150.947006, + 47.557999, 15.000000, 150.246002, + 47.557999, 0.000000, 150.246002, + 46.969002, 15.000000, 150.802002, + 46.969002, 0.000000, 150.802002, + 46.000000, 15.000000, 149.990005, + 46.000000, 0.000000, 149.990005, + 38.952000, 15.000000, 157.725998, + 38.952000, 0.000000, 157.725998, + 39.901001, 15.000000, 158.572006, + 39.901001, 0.000000, 158.572006, + 37.333000, 15.000000, 161.834000, + 37.333000, 0.000000, 161.834000, + 37.681000, 15.000000, 162.100998, + 37.681000, 0.000000, 162.100998, + 48.046001, 15.000000, 169.792999, + 48.046001, 0.000000, 169.792999, + 33.889000, 15.000000, 170.326996, + 33.889000, 0.000000, 170.326996, + 44.081001, 15.000000, 175.970993, + 44.081001, 0.000000, 175.970993, + 32.618999, 15.000000, 169.636993, + 32.618999, 0.000000, 169.636993, + 7.603000, 15.000000, 197.955994, + 7.603000, 0.000000, 197.955994, + 14.925000, 15.000000, 205.324997, + 14.925000, 0.000000, 205.324997, + 18.937000, 15.000000, 201.529007, + 18.937000, 0.000000, 201.529007, + 21.739000, 15.000000, 204.735001, + 21.739000, 0.000000, 204.735001, + 29.629999, 15.000000, 197.399002, + 29.629999, 0.000000, 197.399002, + 35.514000, 15.000000, 190.408005, + 35.514000, 0.000000, 190.408005, + 44.474998, 15.000000, 176.182007, + 44.474998, 0.000000, 176.182007, + 33.327999, 15.000000, 171.128998, + 33.327999, 0.000000, 171.128998, + 26.667000, 15.000000, 168.901993, + 26.667000, 0.000000, 168.901993, + 19.392000, 15.000000, 186.869003, + 19.392000, 0.000000, 186.869003, + 68.542000, 15.000000, 142.475998, + 68.542000, 0.000000, 142.475998, + 59.834999, 15.000000, 134.828995, + 59.834999, 0.000000, 134.828995, + 51.470001, 15.000000, 144.001007, + 51.470001, 0.000000, 144.001007, + 51.890999, 15.000000, 144.367996, + 51.890999, 0.000000, 144.367996, + 52.813999, 15.000000, 145.169998, + 52.813999, 0.000000, 145.169998, + 54.752998, 15.000000, 130.365005, + 54.752998, 0.000000, 130.365005, + 34.036999, 15.000000, 153.339996, + 34.036999, 0.000000, 153.339996, + 44.287998, 15.000000, 148.520004, + 44.287998, 0.000000, 148.520004, + 49.376999, 15.000000, 142.699005, + 49.376999, 0.000000, 142.699005, + 51.269001, 15.000000, 144.223999, + 51.269001, 0.000000, 144.223999, + -110.424004, 10.000000, 160.018997, + -110.424004, 0.000000, 160.018997, + -119.773003, 10.000000, 172.520004, + -119.773003, 0.000000, 172.520004, + -114.236000, 10.000000, 176.973007, + -114.236000, 0.000000, 176.973007, + -111.889000, 10.000000, 173.912003, + -111.889000, 0.000000, 173.912003, + -106.773003, 10.000000, 177.539993, + -106.773003, 0.000000, 177.539993, + -99.110001, 10.000000, 168.468002, + -99.110001, 0.000000, 168.468002, + -90.136002, 10.000000, 175.169006, + -90.136002, 0.000000, 175.169006, + -97.838997, 10.000000, 184.664993, + -97.838997, 0.000000, 184.664993, + -98.848999, 10.000000, 185.910995, + -98.848999, 0.000000, 185.910995, + -96.188004, 10.000000, 188.048996, + -96.188004, 0.000000, 188.048996, + -97.598999, 10.000000, 189.908005, + -97.598999, 0.000000, 189.908005, + -93.365997, 10.000000, 193.246994, + -93.365997, 0.000000, 193.246994, + -83.369003, 10.000000, 180.223007, + -83.369003, 0.000000, 180.223007, + -111.842003, 10.000000, 182.938995, + -111.842003, 0.000000, 182.938995, + -116.035004, 10.000000, 179.166000, + -116.035004, 0.000000, 179.166000, + -127.764000, 10.000000, 181.524994, + -127.764000, 0.000000, 181.524994, + -67.626999, 10.000000, 191.376999, + -67.626999, 0.000000, 191.376999, + -67.713997, 10.000000, 191.498993, + -67.713997, 0.000000, 191.498993, + -68.209000, 10.000000, 191.164993, + -68.209000, 0.000000, 191.164993, + -68.542999, 10.000000, 191.643997, + -68.542999, 0.000000, 191.643997, + -71.016998, 10.000000, 189.873993, + -71.016998, 0.000000, 189.873993, + -70.737000, 10.000000, 189.462006, + -70.737000, 0.000000, 189.462006, + -71.980003, 10.000000, 188.593994, + -71.980003, 0.000000, 188.593994, + -72.267998, 10.000000, 189.005997, + -72.267998, 0.000000, 189.005997, + -74.795998, 10.000000, 187.235992, + -74.795998, 0.000000, 187.235992, + -74.514999, 10.000000, 186.824005, + -74.514999, 0.000000, 186.824005, + -75.764999, 10.000000, 185.955994, + -75.764999, 0.000000, 185.955994, + -76.053001, 10.000000, 186.367996, + -76.053001, 0.000000, 186.367996, + -78.573997, 10.000000, 184.664993, + -78.573997, 0.000000, 184.664993, + -78.233002, 10.000000, 184.175003, + -78.233002, 0.000000, 184.175003, + -78.727997, 10.000000, 183.830002, + -78.727997, 0.000000, 183.830002, + -78.634003, 10.000000, 183.695999, + -78.634003, 0.000000, 183.695999, + -83.382004, 10.000000, 180.279007, + -83.382004, 0.000000, 180.279007, + -83.455002, 10.000000, 180.378998, + -83.455002, 0.000000, 180.378998, + -92.871002, 10.000000, 192.690002, + -92.871002, 0.000000, 192.690002, + -93.057999, 10.000000, 192.934998, + -93.057999, 0.000000, 192.934998, + -95.332001, 10.000000, 195.906998, + -95.332001, 0.000000, 195.906998, + -95.151001, 10.000000, 196.052002, + -95.151001, 0.000000, 196.052002, + -99.110001, 10.000000, 201.216995, + -99.110001, 0.000000, 201.216995, + -99.530998, 10.000000, 201.639999, + -99.530998, 0.000000, 201.639999, + -107.127998, 10.000000, 209.210007, + -107.127998, 0.000000, 209.210007, + -107.355003, 10.000000, 209.432007, + -107.355003, 0.000000, 209.432007, + -101.931999, 10.000000, 216.199997, + -101.931999, 0.000000, 216.199997, + -101.551003, 10.000000, 215.865997, + -101.551003, 0.000000, 215.865997, + -99.652000, 10.000000, 218.237000, + -99.652000, 0.000000, 218.237000, + -100.039001, 10.000000, 218.570999, + -100.039001, 0.000000, 218.570999, + -98.749001, 10.000000, 220.162994, + -98.749001, 0.000000, 220.162994, + -98.367996, 10.000000, 219.839996, + -98.367996, 0.000000, 219.839996, + -96.461998, 10.000000, 222.210999, + -96.461998, 0.000000, 222.210999, + -96.862999, 10.000000, 222.533997, + -96.862999, 0.000000, 222.533997, + -94.682999, 10.000000, 225.250000, + -94.682999, 0.000000, 225.250000, + -94.000999, 10.000000, 224.692993, + -94.000999, 0.000000, 224.692993, + -91.848000, 10.000000, 227.354004, + -91.848000, 0.000000, 227.354004, + -92.416000, 10.000000, 227.843994, + -92.416000, 0.000000, 227.843994, + -91.152000, 10.000000, 229.423996, + -91.152000, 0.000000, 229.423996, + -90.570999, 10.000000, 228.945999, + -90.570999, 0.000000, 228.945999, + -88.436996, 10.000000, 231.628006, + -88.436996, 0.000000, 231.628006, + -89.133003, 10.000000, 232.184998, + -89.133003, 0.000000, 232.184998, + -87.627998, 10.000000, 234.033005, + -87.627998, 0.000000, 234.033005, + -86.873001, 10.000000, 233.442993, + -86.873001, 0.000000, 233.442993, + -85.668999, 10.000000, 234.945007, + -85.668999, 0.000000, 234.945007, + -77.403999, 10.000000, 225.962006, + -77.403999, 0.000000, 225.962006, + -80.171997, 10.000000, 222.612000, + -80.171997, 0.000000, 222.612000, + -78.306000, 10.000000, 219.962997, + -78.306000, 0.000000, 219.962997, + -78.198997, 10.000000, 219.796005, + -78.198997, 0.000000, 219.796005, + -78.112000, 10.000000, 219.617004, + -78.112000, 0.000000, 219.617004, + -78.045998, 10.000000, 219.417007, + -78.045998, 0.000000, 219.417007, + -78.012001, 10.000000, 219.216995, + -78.012001, 0.000000, 219.216995, + -77.985001, 10.000000, 218.893997, + -77.985001, 0.000000, 218.893997, + -73.919998, 10.000000, 221.798996, + -73.919998, 0.000000, 221.798996, + -73.485001, 10.000000, 221.253998, + -73.485001, 0.000000, 221.253998, + -71.680000, 10.000000, 219.016006, + -71.680000, 0.000000, 219.016006, + -71.572998, 10.000000, 219.104996, + -71.572998, 0.000000, 219.104996, + -69.386002, 10.000000, 216.746002, + -69.386002, 0.000000, 216.746002, + -74.007004, 10.000000, 213.617996, + -74.007004, 0.000000, 213.617996, + -74.053001, 10.000000, 213.584000, + -74.053001, 0.000000, 213.584000, + -75.217003, 10.000000, 212.804993, + -75.217003, 0.000000, 212.804993, + -74.046997, 10.000000, 211.067993, + -74.046997, 0.000000, 211.067993, + -73.987000, 10.000000, 211.113007, + -73.987000, 0.000000, 211.113007, + -72.415001, 10.000000, 208.820007, + -72.415001, 0.000000, 208.820007, + -62.826000, 10.000000, 194.794006, + -62.826000, 0.000000, 194.794006, + -62.778999, 10.000000, 194.716003, + -62.778999, 0.000000, 194.716003, + -64.290001, 10.000000, 193.669998, + -64.290001, 0.000000, 193.669998, + 85.139000, 15.000000, 179.565994, + 85.139000, 0.000000, 179.565994, + 95.705002, 15.000000, 167.210007, + 95.705002, 0.000000, 167.210007, + 83.018997, 15.000000, 154.710007, + 83.018997, 0.000000, 154.710007, + 61.186001, 15.000000, 183.785004, + 61.186001, 0.000000, 183.785004, + 72.507004, 15.000000, 191.988998, + 72.507004, 0.000000, 191.988998, + 76.232002, 15.000000, 186.279007, + 76.232002, 0.000000, 186.279007, + 76.834000, 15.000000, 186.723999, + 76.834000, 0.000000, 186.723999, + 79.943001, 15.000000, 182.171005, + 79.943001, 0.000000, 182.171005, + 78.827003, 15.000000, 181.335999, + 78.827003, 0.000000, 181.335999, + 82.283997, 15.000000, 176.628006, + 82.283997, 0.000000, 176.628006, + 99.677002, 7.300000, 171.440002, + 99.677002, 0.000000, 171.440002, + 88.167999, 7.300000, 187.358002, + 88.167999, 0.000000, 187.358002, + 92.962997, 7.300000, 192.089005, + 92.962997, 0.000000, 192.089005, + 103.943001, 7.300000, 175.981995, + 103.943001, 0.000000, 175.981995, + 103.943001, 15.000000, 175.981995, + 92.962997, 15.000000, 192.089005, + 99.456001, 15.000000, 198.667999, + 99.456001, 0.000000, 198.667999, + 101.549004, 15.000000, 195.873993, + 101.549004, 0.000000, 195.873993, + 110.704002, 15.000000, 183.195007, + 110.704002, 0.000000, 183.195007, + 56.532001, 7.500000, 189.205994, + 56.532001, 0.000000, 189.205994, + 72.600998, 7.500000, 199.492004, + 72.600998, 0.000000, 199.492004, + 75.430000, 7.500000, 194.070999, + 75.430000, 0.000000, 194.070999, + 72.507004, 7.500000, 191.988998, + 61.186001, 7.500000, 183.785004, + 60.598000, 7.500000, 183.350998, + 60.598000, 0.000000, 183.350998, + 84.142998, 15.000000, 219.093994, + 84.142998, 0.000000, 219.093994, + 83.547997, 15.000000, 219.873001, + 83.547997, 0.000000, 219.873001, + 112.135002, 15.000000, 232.608002, + 112.135002, 0.000000, 232.608002, + 114.695999, 15.000000, 234.289001, + 114.695999, 0.000000, 234.289001, + 135.968002, 15.000000, 208.585999, + 135.968002, 0.000000, 208.585999, + 139.009995, 5.000000, 78.278999, + 139.009995, 0.000000, 78.278999, + 149.115005, 5.000000, 87.330002, + 149.115005, 0.000000, 87.330002, + 148.973999, 5.000000, 92.361000, + 148.973999, 0.000000, 92.361000, + 139.345001, 5.000000, 103.893997, + 139.345001, 0.000000, 103.893997, + 181.024994, 5.000000, 138.289993, + 181.024994, 0.000000, 138.289993, + 186.703003, 5.000000, 142.988007, + 186.703003, 0.000000, 142.988007, + 188.962997, 5.000000, 144.847000, + 188.962997, 0.000000, 144.847000, + 201.326996, 5.000000, 130.408997, + 201.326996, 0.000000, 130.408997, + 209.987000, 5.000000, 120.212997, + 209.987000, 0.000000, 120.212997, + 197.542007, 5.000000, 109.638000, + 197.542007, 0.000000, 109.638000, + 219.723007, 5.000000, 83.300003, + 219.723007, 0.000000, 83.300003, + 231.485992, 5.000000, 45.185001, + 231.485992, 0.000000, 45.185001, + 185.459000, 5.000000, 30.000999, + 185.459000, 0.000000, 30.000999, + 162.957001, 5.000000, 50.472000, + 162.957001, 0.000000, 50.472000, + 143.738007, 5.000000, 67.959999, + 143.738007, 0.000000, 67.959999, + 179.259995, 25.700001, 125.945000, + 179.259995, 0.000000, 125.945000, + 174.639008, 25.700001, 131.143997, + 174.639008, 0.000000, 131.143997, + 177.916000, 25.700001, 134.059998, + 177.916000, 0.000000, 134.059998, + 182.537003, 25.700001, 128.873001, + 182.537003, 0.000000, 128.873001, + 149.455994, 25.700001, 65.634003, + 149.455994, 0.000000, 65.634003, + 151.602005, 25.700001, 67.971001, + 151.602005, 0.000000, 67.971001, + 157.514008, 25.700001, 62.584000, + 157.514008, 0.000000, 62.584000, + 160.563004, 25.700001, 65.922997, + 160.563004, 0.000000, 65.922997, + 170.386002, 25.700001, 56.962002, + 170.386002, 0.000000, 56.962002, + 167.110001, 25.700001, 53.377998, + 167.110001, 0.000000, 53.377998, + 158.610001, 25.700001, 61.125000, + 158.610001, 0.000000, 61.125000, + 156.690994, 25.700001, 59.033001, + 156.690994, 0.000000, 59.033001, + 149.783005, 25.700001, 109.503998, + 149.783005, 0.000000, 109.503998, + 157.487000, 25.700001, 116.027000, + 157.487000, 0.000000, 116.027000, + 159.699997, 25.700001, 113.411003, + 159.699997, 0.000000, 113.411003, + 152.003006, 25.700001, 106.888000, + 152.003006, 0.000000, 106.888000, + 134.770996, 25.700001, 91.047997, + 134.770996, 0.000000, 91.047997, + 134.436005, 25.700001, 92.750999, + 134.436005, 0.000000, 92.750999, + 135.057999, 25.700001, 92.940002, + 135.057999, 0.000000, 92.940002, + 135.393005, 25.700001, 95.010002, + 135.393005, 0.000000, 95.010002, + 138.669006, 25.700001, 96.580002, + 138.669006, 0.000000, 96.580002, + 142.988998, 25.700001, 92.584000, + 142.988998, 0.000000, 92.584000, + 142.761993, 25.700001, 90.179001, + 142.761993, 0.000000, 90.179001, + 143.190002, 25.700001, 89.901001, + 143.190002, 0.000000, 89.901001, + 142.794998, 25.700001, 86.706001, + 142.794998, 0.000000, 86.706001, + 139.632004, 25.700001, 85.526001, + 139.632004, 0.000000, 85.526001, + 137.339005, 25.700001, 87.061996, + 137.339005, 0.000000, 87.061996, + 137.445999, 25.700001, 87.462997, + 137.445999, 0.000000, 87.462997, + 135.787003, 25.700001, 88.844002, + 135.787003, 0.000000, 88.844002, + 134.436005, 25.700001, 88.276001, + 134.436005, 0.000000, 88.276001, + 132.095993, 25.700001, 87.274002, + 132.095993, 0.000000, 87.274002, + 131.145996, 25.700001, 89.511002, + 131.145996, 0.000000, 89.511002, + 133.447006, 25.700001, 90.490997, + 133.447006, 0.000000, 90.490997, + 219.423004, 31.700001, 109.102997, + 219.423004, 5.000000, 109.102997, + 194.766998, 31.700001, 88.164001, + 194.766998, 5.000000, 88.164001, + 176.671997, 31.700001, 109.459000, + 176.671997, 5.000000, 109.459000, + 201.326996, 31.700001, 130.408997, + 209.987000, 31.700001, 120.212997, + 203.688004, 7.500000, 157.003006, + 203.688004, 0.000000, 157.003006, + 206.791000, 7.500000, 152.951004, + 206.791000, 0.000000, 152.951004, + 210.983002, 7.500000, 147.462997, + 210.983002, 0.000000, 147.462997, + 216.820999, 7.500000, 139.837997, + 216.820999, 0.000000, 139.837997, + 217.350006, 7.500000, 139.147995, + 217.350006, 0.000000, 139.147995, + 230.529999, 7.500000, 121.916000, + 230.529999, 0.000000, 121.916000, + 232.602997, 7.500000, 119.154999, + 232.602997, 0.000000, 119.154999, + 223.789001, 7.500000, 111.418999, + 223.789001, 0.000000, 111.418999, + 234.589005, 7.500000, 99.107002, + 234.589005, 0.000000, 99.107002, + 239.289993, 7.500000, 93.752998, + 239.289993, 0.000000, 93.752998, + 249.274002, 7.500000, 85.927002, + 249.274002, 0.000000, 85.927002, + 245.863007, 7.500000, 81.573997, + 245.863007, 0.000000, 81.573997, + 238.360001, 7.500000, 78.668999, + 238.360001, 0.000000, 78.668999, + 240.927994, 7.500000, 71.845001, + 240.927994, 0.000000, 71.845001, + 248.089996, 7.500000, 52.787998, + 248.089996, 0.000000, 52.787998, + 248.819000, 7.500000, 50.905998, + 248.819000, 0.000000, 50.905998, + 239.511002, 7.500000, 47.834000, + 239.511002, 0.000000, 47.834000, + 231.485992, 7.500000, 45.185001, + 219.723007, 7.500000, 83.300003, + 206.928619, 7.500000, 98.492203, + 206.928619, 0.000000, 98.492203, + 219.423004, 7.500000, 109.102997, + 219.423004, 0.000000, 109.102997, + 209.987000, 7.500000, 120.212997, + 201.326996, 7.500000, 130.408997, + 188.962997, 7.500000, 144.847000, + 197.007004, 7.500000, 151.492996, + 197.007004, 0.000000, 151.492996, + 198.966995, 7.500000, 153.106995, + 198.966995, 0.000000, 153.106995, + 139.345001, 7.500000, 103.893997, + 148.973999, 7.500000, 92.361000, + 149.115005, 7.500000, 87.330002, + 139.009995, 7.500000, 78.278999, + 135.332001, 7.500000, 86.317001, + 135.332001, 0.000000, 86.317001, + 134.436005, 7.500000, 88.276001, + 135.787003, 7.500000, 88.844002, + 137.445999, 7.500000, 87.462997, + 137.339005, 7.500000, 87.061996, + 139.632004, 7.500000, 85.526001, + 142.794998, 7.500000, 86.706001, + 143.190002, 7.500000, 89.901001, + 142.761993, 7.500000, 90.179001, + 142.988998, 7.500000, 92.584000, + 138.669006, 7.500000, 96.580002, + 135.393005, 7.500000, 95.010002, + 135.057999, 7.500000, 92.940002, + 134.436005, 7.500000, 92.750999, + 134.770996, 7.500000, 91.047997, + 133.447006, 7.500000, 90.490997, + 130.658005, 7.500000, 96.747002, + 130.658005, 0.000000, 96.747002, + 133.514008, 7.500000, 99.096001, + 133.514008, 0.000000, 99.096001, + 135.298996, 7.500000, 100.554001, + 135.298996, 0.000000, 100.554001, + 114.421997, 21.299999, 118.820999, + 114.421997, 0.000000, 118.820999, + 120.058998, 21.299999, 124.231003, + 120.058998, 0.000000, 124.231003, + 121.616997, 21.299999, 125.790001, + 121.616997, 0.000000, 125.790001, + 124.378998, 21.299999, 128.572998, + 124.378998, 0.000000, 128.572998, + 125.275002, 21.299999, 127.625999, + 125.275002, 0.000000, 127.625999, + 132.089005, 21.299999, 120.490997, + 132.089005, 0.000000, 120.490997, + 127.615997, 21.299999, 116.349998, + 127.615997, 0.000000, 116.349998, + 126.332001, 21.299999, 115.158997, + 126.332001, 0.000000, 115.158997, + 124.686996, 21.299999, 113.634003, + 124.686996, 0.000000, 113.634003, + 121.917999, 21.299999, 111.061996, + 121.917999, 0.000000, 111.061996, + 156.423996, 20.000000, 174.044998, + 156.423996, 0.000000, 174.044998, + 134.229004, 20.000000, 156.914001, + 134.229004, 0.000000, 156.914001, + 121.042000, 20.000000, 172.419998, + 121.042000, 0.000000, 172.419998, + 136.294998, 20.000000, 187.970993, + 136.294998, 0.000000, 187.970993, + 141.979004, 20.000000, 193.770004, + 141.979004, 0.000000, 193.770004, + 125.275002, 20.000000, 127.625999, + 133.968002, 20.000000, 135.774994, + 133.968002, 0.000000, 135.774994, + 135.893997, 20.000000, 137.578003, + 135.893997, 0.000000, 137.578003, + 144.205994, 20.000000, 145.192001, + 144.205994, 0.000000, 145.192001, + 150.753006, 20.000000, 137.556000, + 150.753006, 0.000000, 137.556000, + 142.654999, 20.000000, 130.153000, + 142.654999, 0.000000, 130.153000, + 132.089005, 20.000000, 120.490997, + 161.526001, 20.000000, 167.076996, + 161.526001, 0.000000, 167.076996, + 171.362000, 20.000000, 153.507004, + 171.362000, 0.000000, 153.507004, + 164.962997, 20.000000, 148.554001, + 164.962997, 0.000000, 148.554001, + 141.992996, 20.000000, 147.796997, + 141.992996, 0.000000, 147.796997, + 136.195007, 20.000000, 154.598007, + 136.195007, 0.000000, 154.598007, + 147.910995, 20.000000, 198.824005, + 147.910995, 0.000000, 198.824005, + 153.233994, 20.000000, 203.509995, + 153.233994, 0.000000, 203.509995, + 164.408005, 20.000000, 187.136002, + 164.408005, 0.000000, 187.136002, + 164.802002, 20.000000, 186.567993, + 164.802002, 0.000000, 186.567993, + 180.591003, 20.000000, 160.843002, + 180.591003, 0.000000, 160.843002, + 175.388000, 20.000000, 156.712997, + 175.388000, 0.000000, 156.712997, + 166.695007, 20.000000, 170.561005, + 166.695007, 0.000000, 170.561005, + 158.970993, 20.000000, 182.895004, + 158.970993, 0.000000, 182.895004, + 173.207993, 20.000000, 154.977005, + 173.207993, 0.000000, 154.977005, + 115.852997, 7.500000, 141.328995, + 115.852997, 0.000000, 141.328995, + 119.150002, 7.500000, 138.167999, + 119.150002, 0.000000, 138.167999, + 118.126999, 7.500000, 137.009995, + 118.126999, 0.000000, 137.009995, + 122.907997, 7.500000, 132.412994, + 122.907997, 0.000000, 132.412994, + 122.166000, 7.500000, 131.432999, + 122.166000, 0.000000, 131.432999, + 124.378998, 7.500000, 128.572998, + 121.616997, 7.500000, 125.790001, + 120.058998, 7.500000, 124.231003, + 116.555000, 7.500000, 128.317001, + 116.555000, 0.000000, 128.317001, + 117.344002, 7.500000, 129.018005, + 117.344002, 0.000000, 129.018005, + 113.887001, 7.500000, 131.712006, + 113.887001, 0.000000, 131.712006, + 108.102997, 7.500000, 136.542999, + 108.102997, 0.000000, 136.542999, + 98.513000, 7.500000, 146.037994, + 98.513000, 0.000000, 146.037994, + 98.774002, 7.500000, 146.261002, + 98.774002, 0.000000, 146.261002, + 97.824997, 7.500000, 147.541000, + 97.824997, 0.000000, 147.541000, + 103.334999, 7.500000, 153.496002, + 103.334999, 0.000000, 153.496002, + 111.459999, 21.299999, 129.317993, + 111.459999, 0.000000, 129.317993, + 107.781998, 21.299999, 125.689003, + 107.781998, 0.000000, 125.689003, + 91.967003, 21.299999, 141.819000, + 91.967003, 0.000000, 141.819000, + 97.824997, 21.299999, 147.541000, + 98.774002, 21.299999, 146.261002, + 98.513000, 21.299999, 146.037994, + 108.102997, 21.299999, 136.542999, + 113.887001, 21.299999, 131.712006, + 175.007004, 10.000000, -8.582000, + 175.007004, 0.000000, -8.582000, + 172.371994, 10.000000, -10.542000, + 172.371994, 0.000000, -10.542000, + 174.438995, 10.000000, -13.325000, + 174.438995, 0.000000, -13.325000, + 176.906006, 10.000000, -11.488000, + 176.906006, 0.000000, -11.488000, + 183.145004, 10.000000, -21.073000, + 183.145004, 0.000000, -21.073000, + 179.179993, 10.000000, -22.097000, + 179.179993, 0.000000, -22.097000, + 177.274002, 10.000000, -22.587000, + 177.274002, 0.000000, -22.587000, + 164.990005, 10.000000, -3.863000, + 164.990005, 0.000000, -3.863000, + 167.016006, 10.000000, -2.159000, + 167.016006, 0.000000, -2.159000, + 169.477005, 10.000000, -0.089000, + 169.477005, 0.000000, -0.089000, + 174.171005, 10.000000, -23.377001, + 174.171005, 0.000000, -23.377001, + 169.537003, 10.000000, -16.464001, + 169.537003, 0.000000, -16.464001, + 167.817993, 10.000000, -13.503000, + 167.817993, 0.000000, -13.503000, + 162.268005, 10.000000, -6.156000, + 162.268005, 0.000000, -6.156000, + 171.589996, 10.000000, 1.681000, + 171.589996, 0.000000, 1.681000, + 173.917007, 10.000000, 3.652000, + 173.917007, 0.000000, 3.652000, + 187.686005, 10.000000, -19.903999, + 187.686005, 0.000000, -19.903999, + 184.817001, 10.000000, -20.650000, + 184.817001, 0.000000, -20.650000, + 178.884995, 10.000000, -10.019000, + 178.884995, 0.000000, -10.019000, + 176.819000, 10.000000, -7.236000, + 176.819000, 0.000000, -7.236000, + 176.524994, 10.000000, 5.833000, + 176.524994, 0.000000, 5.833000, + 179.199997, 10.000000, 8.093000, + 179.199997, 0.000000, 8.093000, + 184.242004, 10.000000, -2.115000, + 184.242004, 0.000000, -2.115000, + 181.813995, 10.000000, -3.740000, + 181.813995, 0.000000, -3.740000, + 185.091003, 10.000000, -9.006000, + 185.091003, 0.000000, -9.006000, + 187.057007, 10.000000, -7.826000, + 187.057007, 0.000000, -7.826000, + 192.427002, 10.000000, -18.690001, + 192.427002, 0.000000, -18.690001, + 189.431000, 10.000000, -19.458000, + 189.431000, 0.000000, -19.458000, + 158.776993, 10.000000, -62.071999, + 158.776993, 0.000000, -62.071999, + 152.684998, 10.000000, -42.445999, + 152.684998, 0.000000, -42.445999, + 159.132004, 10.000000, -46.242001, + 159.132004, 0.000000, -46.242001, + 164.100006, 10.000000, -45.084000, + 164.100006, 0.000000, -45.084000, + 155.548004, 10.000000, -36.958000, + 155.548004, 0.000000, -36.958000, + 164.554993, 10.000000, -34.442001, + 164.554993, 0.000000, -34.442001, + 172.065002, 10.000000, -42.825001, + 172.065002, 0.000000, -42.825001, + 191.584000, 10.000000, -37.192001, + 191.584000, 0.000000, -37.192001, + 183.371994, 10.000000, -29.021000, + 183.371994, 0.000000, -29.021000, + 188.654999, 10.000000, -27.596001, + 188.654999, 0.000000, -27.596001, + 192.253006, 10.000000, -26.627001, + 192.253006, 0.000000, -26.627001, + 199.796005, 10.000000, -34.609001, + 199.796005, 0.000000, -34.609001, + 206.710007, 10.000000, -32.672001, + 206.710007, 0.000000, -32.672001, + 215.470001, 10.000000, -19.903999, + 215.470001, 0.000000, -19.903999, + 218.587006, 10.000000, -18.846001, + 218.587006, 0.000000, -18.846001, + 220.854004, 10.000000, -25.903999, + 220.854004, 0.000000, -25.903999, + 226.182999, 10.000000, -41.789001, + 226.182999, 0.000000, -41.789001, + 215.470001, 4.000000, -19.903999, + 206.710007, 4.000000, -32.672001, + 199.796005, 4.000000, -34.609001, + 192.253006, 4.000000, -26.627001, + 183.371994, 4.000000, -29.021000, + 191.584000, 4.000000, -37.192001, + 172.065002, 4.000000, -42.825001, + 164.554993, 4.000000, -34.442001, + 155.548004, 4.000000, -36.958000, + 164.100006, 4.000000, -45.084000, + 159.132004, 4.000000, -46.242001, + 152.684998, 4.000000, -42.445999, + 151.522003, 4.000000, -38.227001, + 151.522003, 0.000000, -38.227001, + 153.701996, 4.000000, -37.536999, + 153.701996, 0.000000, -37.536999, + 187.117004, 10.000000, 4.019000, + 187.117004, 0.000000, 4.019000, + 185.766006, 10.000000, 3.329000, + 185.766006, 0.000000, 3.329000, + 187.759003, 10.000000, -0.567000, + 187.759003, 0.000000, -0.567000, + 189.076996, 10.000000, 0.112000, + 189.076996, 0.000000, 0.112000, + 190.681000, 10.000000, -3.306000, + 190.681000, 0.000000, -3.306000, + 189.684998, 10.000000, -3.751000, + 189.684998, 0.000000, -3.751000, + 191.404007, 10.000000, -7.569000, + 191.404007, 0.000000, -7.569000, + 192.487000, 10.000000, -7.080000, + 192.487000, 0.000000, -7.080000, + 197.481995, 10.000000, -17.388000, + 197.481995, 0.000000, -17.388000, + 195.035004, 10.000000, -18.011000, + 195.035004, 0.000000, -18.011000, + 181.828003, 10.000000, 9.874000, + 181.828003, 0.000000, 9.874000, + 183.660004, 10.000000, 11.121000, + 183.660004, 0.000000, 11.121000, + 188.587997, 10.000000, 1.069000, + 188.587997, 0.000000, 1.069000, + 189.557999, 10.000000, 1.559000, + 189.557999, 0.000000, 1.559000, + 188.052994, 10.000000, 4.498000, + 188.052994, 0.000000, 4.498000, + 187.270996, 10.000000, 13.570000, + 187.270996, 0.000000, 13.570000, + 188.173996, 10.000000, 11.733000, + 188.173996, 0.000000, 11.733000, + 191.464005, 10.000000, 12.980000, + 191.464005, 0.000000, 12.980000, + 196.707001, 10.000000, 14.962000, + 196.707001, 0.000000, 14.962000, + 208.227997, 10.000000, -13.592000, + 208.227997, 0.000000, -13.592000, + 203.440002, 10.000000, -15.284000, + 203.440002, 0.000000, -15.284000, + 193.757996, 10.000000, -6.512000, + 193.757996, 0.000000, -6.512000, + 192.500000, 10.000000, -3.718000, + 192.500000, 0.000000, -3.718000, + 191.143005, 10.000000, -4.330000, + 191.143005, 0.000000, -4.330000, + 84.931999, 23.600000, -60.869999, + 84.931999, 0.000000, -60.869999, + 89.839996, 23.600000, -81.052002, + 89.839996, 0.000000, -81.052002, + 74.834000, 23.600000, -83.579002, + 74.834000, 0.000000, -83.579002, + 70.380997, 23.600000, -64.431999, + 70.380997, 0.000000, -64.431999, + 144.580994, 10.000000, -50.627998, + 144.580994, 0.000000, -50.627998, + 148.966995, 10.000000, -65.055000, + 148.966995, 0.000000, -65.055000, + 135.653000, 10.000000, -69.107002, + 135.653000, 0.000000, -69.107002, + 131.574005, 10.000000, -54.390999, + 131.574005, 0.000000, -54.390999, + 142.541000, 10.000000, -51.217999, + 142.541000, 0.000000, -51.217999, + 122.373001, 23.600000, -73.137001, + 122.373001, 0.000000, -73.137001, + 117.323997, 23.600000, -52.387001, + 117.323997, 0.000000, -52.387001, + 129.701996, 23.600000, -47.344002, + 129.701996, 0.000000, -47.344002, + 131.574005, 23.600000, -54.390999, + 135.653000, 23.600000, -69.107002, + 84.792000, 23.600000, -60.313000, + 84.792000, 0.000000, -60.313000, + 157.473007, 10.000000, -27.930000, + 157.473007, 0.000000, -27.930000, + 149.776993, 10.000000, -30.134001, + 149.776993, 0.000000, -30.134001, + 146.947998, 10.000000, -30.947001, + 146.947998, 0.000000, -30.947001, + 145.302994, 10.000000, -28.141001, + 145.302994, 0.000000, -28.141001, + 141.865997, 10.000000, -24.312000, + 141.865997, 0.000000, -24.312000, + 141.505005, 10.000000, -41.321999, + 141.505005, 0.000000, -41.321999, + 143.798004, 10.000000, -40.609001, + 143.798004, 0.000000, -40.609001, + 151.522003, 10.000000, -38.227001, + 156.998993, 10.000000, -62.605999, + 156.998993, 0.000000, -62.605999, + -76.514000, 7.500000, -137.537003, + -76.514000, 0.000000, -137.537003, + -86.498001, 7.500000, -143.248001, + -86.498001, 0.000000, -143.248001, + -94.502998, 7.500000, -130.656998, + -94.502998, 0.000000, -130.656998, + -87.040001, 7.500000, -125.759003, + -87.040001, 0.000000, -125.759003, + -89.902000, 7.500000, -120.816002, + -89.902000, 0.000000, -120.816002, + -84.685997, 7.500000, -116.998001, + -84.685997, 0.000000, -116.998001, + -70.917000, 7.500000, -110.362999, + -70.917000, 0.000000, -110.362999, + -70.014000, 7.500000, -109.929001, + -70.014000, 0.000000, -109.929001, + -64.851997, 7.500000, -121.750999, + -64.851997, 0.000000, -121.750999, + -79.268997, 7.500000, -127.561996, + -79.268997, 0.000000, -127.561996, + -78.921997, 7.500000, -128.285995, + -78.921997, 0.000000, -128.285995, + -81.369003, 7.500000, -129.856003, + -81.369003, 0.000000, -129.856003, + -111.099998, 7.500000, -167.884003, + -111.099998, 0.000000, -167.884003, + -124.320000, 7.500000, -178.826996, + -124.320000, 0.000000, -178.826996, + -135.279999, 7.500000, -164.899994, + -135.279999, 0.000000, -164.899994, + -121.196999, 7.500000, -154.001999, + -121.196999, 0.000000, -154.001999, + -75.277000, 7.500000, -165.656998, + -75.277000, 0.000000, -165.656998, + -99.657997, 7.500000, -179.406006, + -99.657997, 0.000000, -179.406006, + -108.491997, 7.500000, -165.957993, + -108.491997, 0.000000, -165.957993, + -82.620003, 7.500000, -151.718994, + -82.620003, 0.000000, -151.718994, + -51.898998, 7.500000, -152.488007, + -51.898998, 0.000000, -152.488007, + -58.411999, 7.500000, -141.087997, + -58.411999, 0.000000, -141.087997, + -48.862999, 7.500000, -135.733994, + -48.862999, 0.000000, -135.733994, + -40.931999, 7.500000, -130.869003, + -34.405998, 7.500000, -142.623993, + -115.634003, 7.500000, -189.826004, + -115.634003, 0.000000, -189.826004, + -91.721001, 7.500000, -116.775002, + -91.721001, 0.000000, -116.775002, + -92.836998, 7.500000, -112.623001, + -92.836998, 0.000000, -112.623001, + -82.264999, 7.500000, -151.552994, + -82.264999, 0.000000, -151.552994, + -86.939003, 7.500000, -143.537003, + -86.939003, 0.000000, -143.537003, + -70.703003, 7.500000, -147.434006, + -70.703003, 0.000000, -147.434006, + -115.580002, 7.500000, -113.580002, + -115.580002, 0.000000, -113.580002, + -115.527000, 7.500000, -110.852997, + -115.527000, 0.000000, -110.852997, + -115.259003, 7.500000, -96.625999, + -115.259003, 0.000000, -96.625999, + -105.830002, 7.500000, -96.804001, + -105.830002, 0.000000, -96.804001, + -106.105003, 7.500000, -111.053001, + -106.105003, 0.000000, -111.053001, + -106.151001, 7.500000, -113.758003, + -106.151001, 0.000000, -113.758003, + -123.711998, 7.500000, -110.685997, + -123.711998, 0.000000, -110.685997, + -123.444000, 7.500000, -96.470001, + -123.444000, 0.000000, -96.470001, + -123.764999, 7.500000, -113.425003, + -123.764999, 0.000000, -113.425003, + -137.520996, 7.500000, -110.407997, + -137.520996, 0.000000, -110.407997, + -148.889008, 7.500000, -104.819000, + -148.889008, 0.000000, -104.819000, + -145.839005, 7.500000, -96.213997, + -145.839005, 0.000000, -96.213997, + -135.548004, 7.500000, -113.525002, + -135.548004, 0.000000, -113.525002, + -134.692001, 7.500000, -111.865997, + -134.692001, 0.000000, -111.865997, + -144.248001, 7.500000, -130.311996, + -144.248001, 0.000000, -130.311996, + -146.667999, 7.500000, -128.431000, + -146.667999, 0.000000, -128.431000, + -151.582993, 7.500000, -125.191002, + -151.582993, 0.000000, -125.191002, + -158.423996, 7.500000, -120.682999, + -158.423996, 0.000000, -120.682999, + -156.591995, 7.500000, -117.109001, + -156.591995, 0.000000, -117.109001, + -155.561996, 7.500000, -117.487999, + -155.561996, 0.000000, -117.487999, + -129.182007, 7.500000, -149.348007, + -129.182007, 0.000000, -149.348007, + -139.380005, 7.500000, -158.744003, + -139.380005, 0.000000, -158.744003, + -150.580002, 7.500000, -146.598999, + -150.580002, 0.000000, -146.598999, + -140.522995, 7.500000, -137.337006, + -140.522995, 0.000000, -137.337006, + -138.156006, 7.500000, -135.154999, + -138.156006, 0.000000, -135.154999, + -126.961998, 7.500000, -147.300003, + -126.961998, 0.000000, -147.300003, + -159.781998, 7.500000, -136.735001, + -159.781998, 0.000000, -136.735001, + -163.065002, 7.500000, -134.320007, + -163.065002, 0.000000, -134.320007, + -162.503006, 7.500000, -133.440002, + -162.503006, 0.000000, -133.440002, + -160.309998, 7.500000, -130.011993, + -160.309998, 0.000000, -130.011993, + -163.378998, 7.500000, -127.417999, + -163.378998, 0.000000, -127.417999, + -180.345001, 5.000000, -152.910995, + -170.567993, 5.000000, -141.744995, + -170.567993, 0.000000, -141.744995, + -160.363998, 5.000000, -150.039001, + -160.363998, 0.000000, -150.039001, + -154.332001, 5.000000, -156.216995, + -154.332001, 0.000000, -156.216995, + -176.138000, 5.000000, -186.352005, + -176.138000, 0.000000, -186.352005, + -181.514999, 5.000000, -190.983002, + -181.514999, 0.000000, -190.983002, + -189.613007, 5.000000, -180.485001, + -189.613007, 0.000000, -180.485001, + -197.209000, 5.000000, -187.955002, + -197.209000, 0.000000, -187.955002, + -206.317001, 5.000000, -177.257004, + -206.317001, 0.000000, -177.257004, + -194.735001, 5.000000, -167.727997, + 117.344002, 21.299999, 129.018005, + 116.555000, 21.299999, 128.317001, + -79.209000, 15.000000, 76.053001, + -69.198997, 15.000000, 79.771004, + -67.894997, 15.000000, 75.830002, + -67.894997, 0.000000, 75.830002, + -63.555000, 15.000000, 62.738998, + -63.555000, 0.000000, 62.738998, + -173.785004, 7.500000, -123.577003, + -173.785004, 0.000000, -123.577003, + -191.197998, 7.500000, -114.670998, + -191.197998, 0.000000, -114.670998, + -186.462997, 7.500000, -106.667000, + -186.462997, 0.000000, -106.667000, + -184.322998, 7.500000, -108.304001, + -184.322998, 0.000000, -108.304001, + -212.408997, 24.000000, -166.313995, + -212.408997, 0.000000, -166.313995, + -229.421005, 24.000000, -146.087006, + -229.421005, 0.000000, -146.087006, + -222.453003, 24.000000, -138.917007, + -222.453003, 0.000000, -138.917007, + -223.067993, 24.000000, -138.326996, + -223.067993, 0.000000, -138.326996, + -216.649002, 24.000000, -132.104004, + -216.649002, 0.000000, -132.104004, + -217.384003, 24.000000, -131.503006, + -217.384003, 0.000000, -131.503006, + -207.942001, 24.000000, -121.763000, + -207.942001, 0.000000, -121.763000, + -208.464005, 24.000000, -121.238998, + -208.464005, 0.000000, -121.238998, + -206.169998, 24.000000, -118.412003, + -206.169998, 0.000000, -118.412003, + -197.095993, 24.000000, -124.178001, + -197.095993, 0.000000, -124.178001, + -196.119003, 24.000000, -122.931000, + -196.119003, 0.000000, -122.931000, + -185.820999, 24.000000, -128.563995, + -185.820999, 0.000000, -128.563995, + -180.798996, 24.000000, -133.229004, + -180.798996, 0.000000, -133.229004, + -309.058014, 7.500000, -228.121002, + -309.058014, 0.000000, -228.121002, + -317.830994, 7.500000, -213.748993, + -317.830994, 0.000000, -213.748993, + -316.066010, 7.500000, -212.591003, + -316.066010, 0.000000, -212.591003, + -316.975006, 7.500000, -211.255005, + -316.975006, 0.000000, -211.255005, + -317.276001, 7.500000, -211.455994, + -317.276001, 0.000000, -211.455994, + -320.212006, 7.500000, -206.423996, + -320.212006, 0.000000, -206.423996, + -315.898010, 7.500000, -203.695999, + -315.898010, 0.000000, -203.695999, + -316.787994, 7.500000, -202.093002, + -316.787994, 0.000000, -202.093002, + -316.467010, 7.500000, -200.156006, + -316.467010, 0.000000, -200.156006, + -314.200012, 7.500000, -198.776001, + -314.200012, 0.000000, -198.776001, + -312.354004, 7.500000, -199.320999, + -312.354004, 0.000000, -199.320999, + -310.601990, 7.500000, -198.218994, + -310.601990, 0.000000, -198.218994, + -309.645996, 7.500000, -199.977997, + -309.645996, 0.000000, -199.977997, + -289.638000, 7.500000, -188.000000, + -289.638000, 0.000000, -188.000000, + -294.058014, 7.500000, -180.473999, + -294.058014, 0.000000, -180.473999, + -284.261993, 7.500000, -174.985992, + -284.261993, 0.000000, -174.985992, + -283.485992, 7.500000, -174.751999, + -283.485992, 0.000000, -174.751999, + -282.596985, 7.500000, -174.929993, + -282.596985, 0.000000, -174.929993, + -281.881012, 7.500000, -175.498001, + -281.881012, 0.000000, -175.498001, + -281.440002, 7.500000, -176.289001, + -281.440002, 0.000000, -176.289001, + -281.406006, 7.500000, -177.190002, + -281.406006, 0.000000, -177.190002, + -281.634003, 7.500000, -177.936005, + -281.634003, 0.000000, -177.936005, + -282.209015, 7.500000, -178.470001, + -282.209015, 0.000000, -178.470001, + -279.380005, 7.500000, -183.268997, + -279.380005, 0.000000, -183.268997, + -271.135010, 7.500000, -178.660004, + -271.135010, 0.000000, -178.660004, + -274.036987, 7.500000, -173.393997, + -274.036987, 0.000000, -173.393997, + -274.867004, 7.500000, -173.550003, + -274.867004, 0.000000, -173.550003, + -275.716003, 7.500000, -173.350006, + -275.716003, 0.000000, -173.350006, + -276.324005, 7.500000, -172.714996, + -276.324005, 0.000000, -172.714996, + -276.605011, 7.500000, -171.979996, + -276.605011, 0.000000, -171.979996, + -276.592010, 7.500000, -170.990005, + -276.592010, 0.000000, -170.990005, + -276.230988, 7.500000, -170.455002, + -276.230988, 0.000000, -170.455002, + -275.835999, 7.500000, -170.121002, + -275.835999, 0.000000, -170.121002, + -265.778992, 7.500000, -164.031998, + -265.778992, 0.000000, -164.031998, + -256.216003, 7.500000, -180.774994, + -256.216003, 0.000000, -180.774994, + -234.229004, 7.500000, -163.830994, + -234.229004, 0.000000, -163.830994, + -260.615997, 7.500000, -132.460999, + -260.615997, 0.000000, -132.460999, + -262.066986, 7.500000, -133.695999, + -262.066986, 0.000000, -133.695999, + -273.315002, 7.500000, -120.515999, + -273.315002, 0.000000, -120.515999, + -257.205994, 7.500000, -106.766998, + -257.205994, 0.000000, -106.766998, + -245.964996, 7.500000, -119.947998, + -245.964996, 0.000000, -119.947998, + -249.134995, 7.500000, -122.653000, + -249.134995, 0.000000, -122.653000, + -229.421005, 7.500000, -146.087006, + -212.408997, 7.500000, -166.313995, + -223.970993, 7.500000, -176.033005, + -223.970993, 0.000000, -176.033005, + -248.365997, 7.500000, -194.089005, + -248.365997, 0.000000, -194.089005, + -276.089996, 7.500000, -209.975006, + -276.089996, 0.000000, -209.975006, + -308.108002, 7.500000, -228.231995, + -308.108002, 0.000000, -228.231995, + -308.596008, 7.500000, -228.332993, + -308.596008, 0.000000, -228.332993, + 101.602997, 5.000000, 115.482002, + 101.602997, 4.700000, 115.482002, + 96.160004, 5.000000, 110.405998, + 96.160004, 4.700000, 110.405998, + 93.318001, 4.700000, 113.432999, + 98.767998, 4.700000, 118.510002, + 101.602997, 0.000000, 115.482002, + 114.750000, 5.000000, 101.400002, + 114.750000, 0.000000, 101.400002, + 109.306000, 5.000000, 96.313004, + 109.306000, 0.000000, 96.313004, + 96.160004, 0.000000, 110.405998, + -71.324997, 15.000000, 17.767000, + -71.324997, 0.000000, 17.767000, + -78.292999, 15.000000, 7.871000, + -62.993000, 15.000000, 122.361000, + -62.993000, 0.000000, 122.361000, + -53.563999, 15.000000, 113.055000, + -54.146000, 15.000000, 112.498001, + -58.779999, 15.000000, 108.045998, + -58.779999, 0.000000, 108.045998, + -51.537998, 7.500000, 96.469002, + -51.537998, 0.000000, 96.469002, + -50.575001, 7.500000, 92.773003, + -47.578999, 7.500000, 82.698997, + -50.067001, 7.500000, 81.852997, + -50.067001, 0.000000, 81.852997, + -58.779999, 7.500000, 108.045998, + -65.554001, 15.000000, 76.598999, + -65.554001, 0.000000, 76.598999, + -50.067001, 15.000000, 81.852997, + -65.554001, 7.500000, 76.598999, + -67.894997, 7.500000, 75.830002, + -73.905998, 7.500000, 93.508003, + -28.722000, 22.000000, 92.338997, + -22.235001, 22.000000, 78.068001, + -29.025999, 22.000000, 75.285004, + -29.025999, 0.000000, 75.285004, + -35.817001, 22.000000, 72.501999, + -42.283001, 22.000000, 86.683998, + -35.502499, 22.000000, 89.511497, + -35.502499, 0.000000, 89.511497, + -28.722000, 22.002426, 92.338997, + -22.235001, 22.004669, 78.068001, + -29.025999, 26.700001, 75.285004, + -35.817001, 22.008108, 72.501999, + -35.502499, 26.700001, 89.511497, + 130.973007, 21.299999, 150.524002, + 130.973007, 0.000000, 150.524002, + 128.572006, 21.299999, 153.307007, + 128.572006, 0.000000, 153.307007, + 123.696999, 21.299999, 149.311005, + 123.696999, 0.000000, 149.311005, + 115.852997, 21.299999, 141.328995, + 103.334999, 21.299999, 153.496002, + 109.947998, 21.299999, 160.074997, + 109.947998, 0.000000, 160.074997, + 111.105003, 21.299999, 161.222000, + 111.105003, 0.000000, 161.222000, + 121.042000, 21.299999, 172.419998, + 134.229004, 21.299999, 156.914001, + 136.195007, 21.299999, 154.598007, + 124.378998, 20.000000, 128.572998, + 122.166000, 20.000000, 131.432999, + 122.907997, 20.000000, 132.412994, + 118.126999, 20.000000, 137.009995, + 119.150002, 20.000000, 138.167999, + 115.852997, 20.000000, 141.328995, + 123.696999, 20.000000, 149.311005, + 128.572006, 20.000000, 153.307007, + 130.973007, 20.000000, 150.524002, + 99.677002, 6.500000, 171.440002, + 95.705002, 6.500000, 167.210007, + 85.139000, 6.500000, 179.565994, + 83.167000, 6.500000, 182.416000, + 83.167000, 0.000000, 182.416000, + 88.167999, 6.500000, 187.358002, + 188.983002, 20.000000, 201.628998, + 188.983002, 0.000000, 201.628998, + 204.871002, 20.000000, 175.414001, + 204.871002, 0.000000, 175.414001, + 195.770004, 20.000000, 169.537003, + 195.770004, 0.000000, 169.537003, + 195.048004, 20.000000, 170.783997, + 195.048004, 0.000000, 170.783997, + 176.852997, 20.000000, 221.643005, + 176.852997, 0.000000, 221.643005, + 204.871002, 7.500000, 175.414001, + 188.983002, 7.500000, 201.628998, + 176.852997, 7.500000, 221.643005, + 189.216995, 7.500000, 231.716995, + 189.216995, 0.000000, 231.716995, + 188.869003, 7.500000, 231.884003, + 188.869003, 0.000000, 231.884003, + 191.651001, 7.500000, 233.977005, + 191.651001, 0.000000, 233.977005, + 192.173004, 7.500000, 233.276001, + 192.173004, 0.000000, 233.276001, + 214.889008, 7.500000, 253.167007, + 214.889008, 0.000000, 253.167007, + 216.533997, 7.500000, 254.615005, + 216.533997, 0.000000, 254.615005, + 218.399002, 7.500000, 256.239990, + 218.399002, 0.000000, 256.239990, + 220.164993, 7.500000, 257.786987, + 220.164993, 0.000000, 257.786987, + 234.802994, 7.500000, 270.609985, + 234.802994, 0.000000, 270.609985, + 248.076996, 7.500000, 282.243011, + 248.076996, 0.000000, 282.243011, + 258.287994, 7.500000, 268.628998, + 258.287994, 0.000000, 268.628998, + 280.950012, 7.500000, 230.949005, + 280.950012, 0.000000, 230.949005, + 275.941986, 7.500000, 227.153000, + 275.941986, 0.000000, 227.153000, + 232.375000, 7.500000, 194.149002, + 232.375000, 0.000000, 194.149002, + 220.886993, 7.500000, 186.345001, + 220.886993, 0.000000, 186.345001, + 173.656006, 24.000000, -177.580002, + 173.656006, 0.000000, -177.580002, + 181.820999, 24.000000, -183.869995, + 181.820999, 0.000000, -183.869995, + 182.582993, 24.000000, -184.460007, + 182.582993, 0.000000, -184.460007, + 182.121994, 24.000000, -185.050003, + 182.121994, 0.000000, -185.050003, + 173.214996, 24.000000, -196.615997, + 173.214996, 0.000000, -196.615997, + 170.699997, 24.000000, -199.878006, + 170.699997, 0.000000, -199.878006, + 169.878006, 24.000000, -200.947006, + 169.878006, 0.000000, -200.947006, + 160.951004, 24.000000, -194.078003, + 160.951004, 0.000000, -194.078003, + 161.705994, 24.000000, -193.098007, + 161.705994, 0.000000, -193.098007, + 164.013000, 24.000000, -190.104004, + 164.013000, 0.000000, -190.104004, + 173.214996, 7.000000, -196.615997, + 182.121994, 7.000000, -185.050003, + 184.182007, 7.000000, -186.630997, + 184.182007, 0.000000, -186.630997, + 182.917999, 7.000000, -188.278000, + 182.917999, 0.000000, -188.278000, + 175.274002, 7.000000, -198.197006, + 175.274002, 0.000000, -198.197006, + 181.820999, 7.000000, -183.869995, + 173.656006, 7.000000, -177.580002, + 164.013000, 7.000000, -190.104004, + 159.184998, 7.000000, -184.393005, + 159.184998, 0.000000, -184.393005, + 166.100006, 7.000000, -175.376007, + 166.100006, 0.000000, -175.376007, + 167.697998, 7.000000, -174.429001, + 167.697998, 0.000000, -174.429001, + 169.537003, 7.000000, -173.828003, + 169.537003, 0.000000, -173.828003, + 171.416000, 7.000000, -173.794998, + 171.416000, 0.000000, -173.794998, + 173.569000, 7.000000, -174.317993, + 173.569000, 0.000000, -174.317993, + 183.826996, 7.000000, -179.317001, + 183.826996, 0.000000, -179.317001, + -152.479996, 10.000000, 161.610992, + -152.479996, 0.000000, 161.610992, + -146.641998, 10.000000, 165.563004, + -146.641998, 0.000000, 165.563004, + -139.098999, 10.000000, 155.389008, + -139.098999, 0.000000, 155.389008, + -138.009003, 10.000000, 156.223007, + -138.009003, 0.000000, 156.223007, + -137.727997, 10.000000, 155.822998, + -137.727997, 0.000000, 155.822998, + -132.190994, 10.000000, 147.496002, + -132.190994, 0.000000, 147.496002, + -132.190994, 10.000000, 147.485001, + -132.190994, 0.000000, 147.485001, + -131.949997, 10.000000, 147.128998, + -131.949997, 0.000000, 147.128998, + -139.600006, 10.000000, 142.042007, + -139.600006, 0.000000, 142.042007, + -142.375000, 10.000000, 146.371994, + -142.375000, 0.000000, 146.371994, + -146.199997, 10.000000, 152.705994, + -146.199997, 0.000000, 152.705994, + -146.621994, 10.000000, 153.328995, + -146.621994, 0.000000, 153.328995, + -147.423996, 10.000000, 154.464996, + -147.423996, 0.000000, 154.464996, + -124.220001, 7.500000, 152.238007, + -124.220001, 0.000000, 152.238007, + -130.779999, 7.500000, 147.863998, + -130.779999, 0.000000, 147.863998, + -130.906998, 7.500000, 148.063995, + -130.906998, 0.000000, 148.063995, + -130.867004, 7.500000, 148.085999, + -130.867004, 0.000000, 148.085999, + -136.832001, 7.500000, 157.125000, + -136.832001, 0.000000, 157.125000, + -138.009003, 7.500000, 156.223007, + -139.098999, 7.500000, 155.389008, + -146.641998, 7.500000, 165.563004, + -146.514999, 7.500000, 165.641006, + -146.514999, 0.000000, 165.641006, + -146.602005, 7.500000, 165.774002, + -146.602005, 0.000000, 165.774002, + -138.992004, 7.500000, 171.384995, + -138.992004, 0.000000, 171.384995, + -132.477997, 7.500000, 176.182007, + -132.477997, 0.000000, 176.182007, + -118.456001, 7.500000, 158.104996, + -118.456001, 0.000000, 158.104996, + -118.803001, 7.500000, 155.845001, + -118.803001, 0.000000, 155.845001, + 101.963997, 7.500000, -119.926003, + 101.963997, 0.000000, -119.926003, + 102.191002, 7.500000, -120.492996, + 102.191002, 0.000000, -120.492996, + 105.032997, 7.500000, -127.628998, + 105.032997, 0.000000, -127.628998, + 105.266998, 7.500000, -128.218994, + 105.266998, 0.000000, -128.218994, + 104.029999, 7.500000, -128.709000, + 104.029999, 0.000000, -128.709000, + 103.569000, 7.500000, -128.897995, + 103.569000, 0.000000, -128.897995, + 102.833000, 7.500000, -129.188004, + 102.833000, 0.000000, -129.188004, + 102.098000, 7.500000, -129.488007, + 102.098000, 0.000000, -129.488007, + 101.917000, 7.500000, -129.565994, + 101.917000, 0.000000, -129.565994, + 100.927002, 7.500000, -129.955994, + 100.927002, 0.000000, -129.955994, + 98.788002, 7.500000, -130.824005, + 98.788002, 0.000000, -130.824005, + 95.484001, 7.500000, -122.530998, + 95.484001, 0.000000, -122.530998, + 97.624001, 7.500000, -121.674004, + 97.624001, 0.000000, -121.674004, + 98.747002, 7.500000, -121.217003, + 98.747002, 0.000000, -121.217003, + 99.175003, 7.500000, -121.050003, + 99.175003, 0.000000, -121.050003, + 99.683998, 7.500000, -120.849998, + 99.683998, 0.000000, -120.849998, + 100.165001, 7.500000, -120.649002, + 100.165001, 0.000000, -120.649002, + 100.626999, 7.500000, -120.471001, + 100.626999, 0.000000, -120.471001, + 103.086998, 7.500000, -120.137001, + 103.086998, 0.000000, -120.137001, + 111.633003, 7.500000, -116.709000, + 111.633003, 0.000000, -116.709000, + 114.482002, 7.500000, -123.833000, + 114.482002, 0.000000, -123.833000, + 112.462997, 7.500000, -124.646004, + 112.462997, 0.000000, -124.646004, + 112.008003, 7.500000, -124.823997, + 112.008003, 0.000000, -124.823997, + 111.546997, 7.500000, -125.013000, + 111.546997, 0.000000, -125.013000, + 111.084999, 7.500000, -125.202003, + 111.084999, 0.000000, -125.202003, + 110.624001, 7.500000, -125.380997, + 110.624001, 0.000000, -125.380997, + 105.948997, 7.500000, -127.262001, + 105.948997, 0.000000, -127.262001, + 179.126007, 14.000000, 157.804001, + 179.126007, 13.700000, 157.804001, + 183.856995, 14.000000, 152.026993, + 183.856995, 13.700000, 152.026993, + 188.587997, 14.000000, 146.250000, + 188.587997, 13.700000, 146.250000, + 134.356003, 14.000000, 101.801003, + 134.356003, 13.700000, 101.801003, + 129.625000, 14.000000, 107.578499, + 129.625000, 13.700000, 107.578499, + 129.160004, 14.000000, 108.135002, + 129.160004, 13.700000, 108.135002, + 124.893997, 14.000000, 113.356003, + 124.893997, 13.700000, 113.356003, + 179.126007, 14.000311, 157.804001, + 183.856995, 20.000000, 152.026993, + 188.587997, 14.000311, 146.250000, + 129.625000, 20.000000, 107.578499, + 129.160004, 19.417305, 108.135002, + 124.893997, 14.000001, 113.356003, + 135.298996, 14.000000, 100.554001, + 135.298996, 13.700000, 100.554001, + 124.686996, 14.000000, 113.634003, + 124.686996, 13.700000, 113.634003, + 126.332001, 14.000000, 115.158997, + 126.332001, 13.700000, 115.158997, + 127.615997, 14.000000, 116.349998, + 127.615997, 13.700000, 116.349998, + 132.089005, 14.000000, 120.490997, + 132.089005, 13.700000, 120.490997, + 142.654999, 14.000000, 130.153000, + 142.654999, 13.700000, 130.153000, + 150.753006, 14.000000, 137.556000, + 150.753006, 13.700000, 137.556000, + 164.962997, 14.000000, 148.554001, + 164.962997, 13.700000, 148.554001, + 171.362000, 14.000000, 153.507004, + 171.362000, 13.700000, 153.507004, + 173.207993, 14.000000, 154.977005, + 173.207993, 13.700000, 154.977005, + 175.388000, 14.000000, 156.712997, + 175.388000, 13.700000, 156.712997, + 180.591003, 14.000000, 160.843002, + 180.591003, 13.700000, 160.843002, + 195.048004, 14.000000, 170.783997, + 195.048004, 13.700000, 170.783997, + 195.770004, 14.000000, 169.537003, + 195.770004, 13.700000, 169.537003, + 204.871002, 14.000000, 175.414001, + 204.871002, 13.700000, 175.414001, + 220.886993, 14.000000, 186.345001, + 220.886993, 13.700000, 186.345001, + 232.375000, 14.000000, 194.149002, + 232.375000, 13.700000, 194.149002, + 275.941986, 14.000000, 227.153000, + 275.941986, 13.700000, 227.153000, + 278.114990, 14.000000, 224.492996, + 278.114990, 13.700000, 224.492996, + 280.562988, 14.000000, 221.498993, + 280.562988, 13.700000, 221.498993, + 255.371994, 14.000000, 201.662003, + 255.371994, 13.700000, 201.662003, + 268.231995, 14.000000, 185.354996, + 268.231995, 13.700000, 185.354996, + 284.955994, 14.000000, 165.507004, + 284.955994, 13.700000, 165.507004, + 280.963989, 14.000000, 162.311996, + 280.963989, 13.700000, 162.311996, + 277.259003, 14.000000, 159.339996, + 277.259003, 13.700000, 159.339996, + 271.575012, 14.000000, 166.932007, + 271.575012, 13.700000, 166.932007, + 270.404999, 14.000000, 166.119003, + 270.404999, 13.700000, 166.119003, + 269.643005, 14.000000, 167.166000, + 269.643005, 13.700000, 167.166000, + 261.283997, 14.000000, 178.498001, + 261.283997, 13.700000, 178.498001, + 252.985001, 14.000000, 189.751999, + 252.985001, 13.700000, 189.751999, + 247.067001, 14.000000, 189.595993, + 247.067001, 13.700000, 189.595993, + 240.962006, 14.000000, 184.720001, + 240.962006, 13.700000, 184.720001, + 239.149002, 14.000000, 183.440002, + 239.149002, 13.700000, 183.440002, + 237.444000, 14.000000, 182.238007, + 237.444000, 13.700000, 182.238007, + 226.899002, 14.000000, 174.356995, + 226.899002, 13.700000, 174.356995, + 221.367996, 14.000000, 170.227005, + 221.367996, 13.700000, 170.227005, + 217.089005, 14.000000, 167.020996, + 217.089005, 13.700000, 167.020996, + 213.697998, 14.000000, 164.483002, + 213.697998, 13.700000, 164.483002, + 209.772995, 14.000000, 161.554993, + 209.772995, 13.700000, 161.554993, + 207.112000, 14.000000, 159.563004, + 207.112000, 13.700000, 159.563004, + 203.688004, 14.000000, 157.003006, + 203.688004, 13.700000, 157.003006, + 198.966995, 14.000000, 153.106995, + 198.966995, 13.700000, 153.106995, + 197.007004, 14.000000, 151.492996, + 197.007004, 13.700000, 151.492996, + 188.962997, 14.000000, 144.847000, + 188.962997, 13.700000, 144.847000, + 186.703003, 14.000000, 142.988007, + 186.703003, 13.700000, 142.988007, + 181.024994, 14.000000, 138.289993, + 181.024994, 13.700000, 138.289993, + 139.345001, 14.000000, 103.893997, + 139.345001, 13.700000, 103.893997, + -162.566879, 0.000000, -42.736065, + -161.684143, 0.000000, -42.266209, + -162.613861, 0.000000, -42.647793, + -161.731125, 0.000000, -42.177933, + -162.613861, 2.000000, -42.647793, + -161.731125, 2.000000, -42.177933, + -162.566879, 2.000000, -42.736065, + -161.684143, 2.000000, -42.266209, + 186.349350, 0.000000, 142.631027, + 187.120331, 0.000000, 143.267883, + 186.285660, 0.000000, 142.708130, + 187.056656, 0.000000, 143.344971, + 186.285660, 2.000000, 142.708130, + 187.056656, 2.000000, 143.344971, + 186.349350, 2.000000, 142.631027, + 187.120331, 2.000000, 143.267883, + 134.014008, 0.000000, 99.146004, + 133.014008, 0.000000, 99.146004, + 134.014008, 0.000000, 99.045998, + 133.014008, 0.000000, 99.045998, + 134.014008, 2.000000, 99.045998, + 133.014008, 2.000000, 99.045998, + 134.014008, 2.000000, 99.146004, + 133.014008, 2.000000, 99.146004, + 135.832001, 0.000000, 86.366997, + 134.832001, 0.000000, 86.366997, + 135.832001, 0.000000, 86.266998, + 134.832001, 0.000000, 86.266998, + 135.832001, 2.000000, 86.266998, + 134.832001, 2.000000, 86.266998, + 135.832001, 2.000000, 86.366997, + 134.832001, 2.000000, 86.366997, + 163.360489, 0.000000, 50.172497, + 162.620819, 0.000000, 50.845470, + 163.293182, 0.000000, 50.098530, + 162.553513, 0.000000, 50.771503, + 163.293182, 2.000000, 50.098530, + 162.553513, 2.000000, 50.771503, + 163.360489, 2.000000, 50.172497, + 162.620819, 2.000000, 50.845470, + 239.528732, 0.000000, 183.769104, + 238.711624, 0.000000, 183.192612, + 239.586380, 0.000000, 183.687393, + 238.769272, 0.000000, 183.110901, + 239.586380, 2.000000, 183.687393, + 238.769272, 2.000000, 183.110901, + 239.528732, 2.000000, 183.769104, + 238.711624, 2.000000, 183.192612, + 207.482422, 0.000000, 159.902542, + 206.681671, 0.000000, 159.303528, + 207.542328, 0.000000, 159.822464, + 206.741577, 0.000000, 159.223465, + 207.542328, 2.000000, 159.822464, + 206.741577, 2.000000, 159.223465, + 207.482422, 2.000000, 159.902542, + 206.681671, 2.000000, 159.303528, + 261.621033, 0.000000, 178.125290, + 261.027466, 0.000000, 178.930069, + 261.540527, 0.000000, 178.065933, + 260.946991, 0.000000, 178.870712, + 261.540527, 2.000000, 178.065933, + 260.946991, 2.000000, 178.870712, + 261.621033, 2.000000, 178.125290, + 261.027466, 2.000000, 178.930069, + 227.269623, 0.000000, 174.696320, + 226.468521, 0.000000, 174.097794, + 227.329483, 0.000000, 174.616211, + 226.528381, 0.000000, 174.017685, + 227.329483, 2.000000, 174.616211, + 226.528381, 2.000000, 174.017685, + 227.269623, 2.000000, 174.696320, + 226.468521, 2.000000, 174.097794, + 221.738480, 0.000000, 170.566483, + 220.937637, 0.000000, 169.967606, + 221.798370, 0.000000, 170.486389, + 220.997528, 0.000000, 169.887527, + 221.798370, 2.000000, 170.486389, + 220.997528, 2.000000, 169.887527, + 221.738480, 2.000000, 170.566483, + 220.937637, 2.000000, 169.967606, + 217.459244, 0.000000, 167.360733, + 216.658813, 0.000000, 166.761307, + 217.519180, 0.000000, 167.280701, + 216.718765, 0.000000, 166.681259, + 217.519180, 2.000000, 167.280701, + 216.718765, 2.000000, 166.681259, + 217.459244, 2.000000, 167.360733, + 216.658813, 2.000000, 166.761307, + 214.068619, 0.000000, 164.822311, + 213.267517, 0.000000, 164.223785, + 214.128479, 0.000000, 164.742203, + 213.327377, 0.000000, 164.143677, + 214.128479, 2.000000, 164.742203, + 213.327377, 2.000000, 164.143677, + 214.068619, 2.000000, 164.822311, + 213.267517, 2.000000, 164.223785 + ], + "parts": [ + { + "id": "shape1_part1", + "type": "TRIANGLES", + "indices": [ + 0, 1, 2, 1, 3, 2, 2, 3, 4, 3, 5, 4, + 4, 5, 6, 5, 7, 6, 6, 7, 8, 7, 9, 8, + 8, 9, 10, 9, 11, 10, 10, 11, 12, 11, 13, 12, + 12, 13, 14, 13, 15, 14, 14, 15, 16, 15, 17, 16, + 16, 17, 18, 17, 19, 18, 18, 19, 20, 19, 21, 20, + 20, 21, 22, 21, 23, 22, 22, 23, 24, 23, 25, 24, + 24, 25, 26, 25, 27, 26, 26, 27, 28, 27, 29, 28, + 28, 29, 30, 29, 31, 30, 30, 31, 32, 31, 33, 32, + 32, 33, 34, 33, 35, 34, 34, 35, 36, 35, 37, 36, + 36, 37, 38, 37, 39, 38, 38, 39, 40, 39, 41, 40, + 40, 41, 42, 41, 43, 42, 42, 43, 44, 43, 45, 44, + 44, 45, 46, 45, 47, 46, 46, 47, 48, 47, 49, 48, + 48, 49, 50, 49, 51, 50, 50, 51, 52, 51, 53, 52, + 52, 53, 54, 53, 55, 54, 54, 55, 56, 55, 57, 56, + 56, 57, 58, 57, 59, 58, 58, 59, 60, 59, 61, 60, + 60, 61, 62, 61, 63, 62, 62, 63, 64, 63, 65, 64, + 64, 65, 66, 65, 67, 66, 66, 67, 68, 67, 69, 68, + 68, 69, 70, 69, 71, 70, 70, 71, 72, 71, 73, 72, + 72, 73, 74, 73, 75, 74, 74, 75, 76, 75, 77, 76, + 76, 77, 78, 77, 79, 78, 78, 79, 80, 79, 81, 80, + 80, 81, 82, 81, 83, 82, 82, 83, 84, 83, 85, 84, + 84, 85, 86, 85, 87, 86, 86, 87, 88, 87, 89, 88, + 88, 89, 90, 89, 91, 90, 90, 91, 0, 91, 1, 0, + 0, 0, 2, 0, 2, 2, 2, 2, 4, 2, 4, 4, + 4, 4, 6, 4, 6, 6, 6, 6, 8, 6, 8, 8, + 8, 8, 10, 8, 10, 10, 10, 10, 12, 10, 12, 12, + 12, 12, 14, 12, 14, 14, 14, 14, 16, 14, 16, 16, + 16, 16, 18, 16, 18, 18, 18, 18, 20, 18, 20, 20, + 20, 20, 22, 20, 22, 22, 22, 22, 24, 22, 24, 24, + 24, 24, 26, 24, 26, 26, 26, 26, 28, 26, 28, 28, + 28, 28, 30, 28, 30, 30, 30, 30, 32, 30, 32, 32, + 32, 32, 34, 32, 34, 34, 34, 34, 36, 34, 36, 36, + 36, 36, 38, 36, 38, 38, 38, 38, 40, 38, 40, 40, + 40, 40, 42, 40, 42, 42, 42, 42, 44, 42, 44, 44, + 44, 44, 46, 44, 46, 46, 46, 46, 48, 46, 48, 48, + 48, 48, 50, 48, 50, 50, 50, 50, 52, 50, 52, 52, + 52, 52, 54, 52, 54, 54, 54, 54, 56, 54, 56, 56, + 56, 56, 58, 56, 58, 58, 58, 58, 60, 58, 60, 60, + 60, 60, 62, 60, 62, 62, 62, 62, 64, 62, 64, 64, + 64, 64, 66, 64, 66, 66, 66, 66, 68, 66, 68, 68, + 68, 68, 70, 68, 70, 70, 70, 70, 72, 70, 72, 72, + 72, 72, 74, 72, 74, 74, 74, 74, 76, 74, 76, 76, + 76, 76, 78, 76, 78, 78, 78, 78, 80, 78, 80, 80, + 80, 80, 82, 80, 82, 82, 82, 82, 84, 82, 84, 84, + 84, 84, 86, 84, 86, 86, 86, 86, 88, 86, 88, 88, + 88, 88, 90, 88, 90, 90, 90, 90, 0, 90, 0, 0, + 92, 93, 94, 93, 95, 94, 94, 95, 96, 95, 97, 96, + 96, 97, 98, 97, 99, 98, 98, 99, 100, 99, 101, 100, + 100, 101, 102, 101, 103, 102, 102, 103, 104, 103, 105, 104, + 104, 105, 106, 105, 107, 106, 106, 107, 108, 107, 109, 108, + 108, 109, 92, 109, 93, 92, 92, 92, 94, 92, 94, 94, + 94, 94, 96, 94, 96, 96, 96, 96, 98, 96, 98, 98, + 98, 98, 100, 98, 100, 100, 100, 100, 102, 100, 102, 102, + 102, 102, 104, 102, 104, 104, 104, 104, 106, 104, 106, 106, + 106, 106, 108, 106, 108, 108, 108, 108, 92, 108, 92, 92, + 110, 111, 112, 111, 113, 112, 112, 113, 114, 113, 115, 114, + 114, 115, 116, 115, 117, 116, 116, 117, 118, 117, 119, 118, + 118, 119, 120, 119, 121, 120, 120, 121, 110, 121, 111, 110, + 110, 110, 112, 110, 112, 112, 112, 112, 114, 112, 114, 114, + 114, 114, 116, 114, 116, 116, 116, 116, 118, 116, 118, 118, + 118, 118, 120, 118, 120, 120, 120, 120, 110, 120, 110, 110, + 142, 143, 144, 143, 145, 144, 144, 145, 146, 145, 147, 146, + 146, 147, 148, 147, 149, 148, 148, 149, 150, 149, 151, 150, + 150, 151, 152, 151, 153, 152, 152, 153, 154, 153, 155, 154, + 154, 155, 156, 155, 157, 156, 156, 157, 158, 157, 159, 158, + 158, 159, 142, 159, 143, 142, 142, 142, 144, 142, 144, 144, + 144, 144, 146, 144, 146, 146, 146, 146, 148, 146, 148, 148, + 148, 148, 150, 148, 150, 150, 150, 150, 152, 150, 152, 152, + 152, 152, 154, 152, 154, 154, 154, 154, 156, 154, 156, 156, + 156, 156, 158, 156, 158, 158, 158, 158, 142, 158, 142, 142, + 160, 161, 162, 161, 163, 162, 162, 163, 164, 163, 165, 164, + 164, 165, 166, 165, 167, 166, 166, 167, 168, 167, 169, 168, + 168, 169, 170, 169, 171, 170, 170, 171, 172, 171, 173, 172, + 172, 173, 174, 173, 175, 174, 174, 175, 176, 175, 177, 176, + 176, 177, 178, 177, 179, 178, 178, 179, 180, 179, 181, 180, + 180, 181, 182, 181, 183, 182, 182, 183, 184, 183, 185, 184, + 184, 185, 186, 185, 187, 186, 186, 187, 188, 187, 189, 188, + 188, 189, 190, 189, 191, 190, 190, 191, 192, 191, 193, 192, + 192, 193, 194, 193, 195, 194, 194, 195, 196, 195, 197, 196, + 196, 197, 198, 197, 199, 198, 198, 199, 160, 199, 161, 160, + 160, 160, 162, 160, 162, 162, 162, 162, 164, 162, 164, 164, + 164, 164, 166, 164, 166, 166, 166, 166, 168, 166, 168, 168, + 168, 168, 170, 168, 170, 170, 170, 170, 172, 170, 172, 172, + 172, 172, 174, 172, 174, 174, 174, 174, 176, 174, 176, 176, + 176, 176, 178, 176, 178, 178, 178, 178, 180, 178, 180, 180, + 180, 180, 182, 180, 182, 182, 182, 182, 184, 182, 184, 184, + 184, 184, 186, 184, 186, 186, 186, 186, 188, 186, 188, 188, + 188, 188, 190, 188, 190, 190, 190, 190, 192, 190, 192, 192, + 192, 192, 194, 192, 194, 194, 194, 194, 196, 194, 196, 196, + 196, 196, 198, 196, 198, 198, 198, 198, 160, 198, 160, 160, + 200, 143, 201, 143, 159, 201, 201, 159, 202, 159, 157, 202, + 202, 157, 203, 157, 155, 203, 203, 155, 204, 155, 153, 204, + 204, 153, 205, 153, 151, 205, 205, 151, 206, 151, 149, 206, + 206, 149, 207, 149, 147, 207, 207, 147, 208, 147, 145, 208, + 208, 145, 200, 145, 143, 200, 200, 200, 201, 200, 201, 201, + 201, 201, 202, 201, 202, 202, 202, 202, 203, 202, 203, 203, + 203, 203, 204, 203, 204, 204, 204, 204, 205, 204, 205, 205, + 205, 205, 206, 205, 206, 206, 206, 206, 207, 206, 207, 207, + 207, 207, 208, 207, 208, 208, 208, 208, 200, 208, 200, 200, + 209, 210, 211, 210, 212, 211, 211, 212, 213, 212, 214, 213, + 213, 214, 215, 214, 216, 215, 215, 216, 217, 216, 218, 217, + 217, 218, 219, 218, 220, 219, 219, 220, 221, 220, 222, 221, + 221, 222, 223, 222, 224, 223, 223, 224, 225, 224, 226, 225, + 225, 226, 227, 226, 228, 227, 227, 228, 229, 228, 230, 229, + 229, 230, 209, 230, 210, 209, 209, 209, 211, 209, 211, 211, + 211, 211, 213, 211, 213, 213, 213, 213, 215, 213, 215, 215, + 215, 215, 217, 215, 217, 217, 217, 217, 219, 217, 219, 219, + 219, 219, 221, 219, 221, 221, 221, 221, 223, 221, 223, 223, + 223, 223, 225, 223, 225, 225, 225, 225, 227, 225, 227, 227, + 227, 227, 229, 227, 229, 229, 229, 229, 209, 229, 209, 209, + 231, 232, 32, 232, 33, 32, 32, 33, 30, 33, 31, 30, + 30, 31, 28, 31, 29, 28, 28, 29, 26, 29, 27, 26, + 26, 27, 233, 27, 234, 233, 233, 234, 235, 234, 236, 235, + 235, 236, 237, 236, 238, 237, 237, 238, 239, 238, 240, 239, + 239, 240, 241, 240, 242, 241, 241, 242, 243, 242, 244, 243, + 243, 244, 245, 244, 246, 245, 245, 246, 247, 246, 248, 247, + 247, 248, 249, 248, 250, 249, 249, 250, 251, 250, 252, 251, + 251, 252, 253, 252, 254, 253, 253, 254, 255, 254, 256, 255, + 255, 256, 231, 256, 232, 231, 231, 231, 32, 231, 32, 32, + 32, 32, 30, 32, 30, 30, 30, 30, 28, 30, 28, 28, + 28, 28, 26, 28, 26, 26, 26, 26, 233, 26, 233, 233, + 233, 233, 235, 233, 235, 235, 235, 235, 237, 235, 237, 237, + 237, 237, 239, 237, 239, 239, 239, 239, 241, 239, 241, 241, + 241, 241, 243, 241, 243, 243, 243, 243, 245, 243, 245, 245, + 245, 245, 247, 245, 247, 247, 247, 247, 249, 247, 249, 249, + 249, 249, 251, 249, 251, 251, 251, 251, 253, 251, 253, 253, + 253, 253, 255, 253, 255, 255, 255, 255, 231, 255, 231, 231, + 257, 258, 259, 258, 260, 259, 259, 260, 261, 260, 262, 261, + 261, 262, 263, 262, 264, 263, 263, 264, 265, 264, 266, 265, + 265, 266, 267, 266, 268, 267, 267, 268, 269, 268, 270, 269, + 269, 270, 271, 270, 272, 271, 271, 272, 257, 272, 258, 257, + 257, 257, 259, 257, 259, 259, 259, 259, 261, 259, 261, 261, + 261, 261, 263, 261, 263, 263, 263, 263, 265, 263, 265, 265, + 265, 265, 267, 265, 267, 267, 267, 267, 269, 267, 269, 269, + 269, 269, 271, 269, 271, 271, 271, 271, 257, 271, 257, 257, + 273, 274, 275, 274, 276, 275, 275, 276, 277, 276, 278, 277, + 277, 278, 279, 278, 280, 279, 279, 280, 273, 280, 274, 273, + 273, 273, 275, 273, 275, 275, 275, 275, 277, 275, 277, 277, + 277, 277, 279, 277, 279, 279, 279, 279, 273, 279, 273, 273, + 281, 282, 283, 282, 284, 283, 283, 284, 285, 284, 286, 285, + 285, 286, 287, 286, 288, 287, 287, 288, 289, 288, 290, 289, + 289, 290, 281, 290, 282, 281, 281, 281, 283, 281, 283, 283, + 283, 283, 285, 283, 285, 285, 285, 285, 287, 285, 287, 287, + 287, 287, 289, 287, 289, 289, 289, 289, 281, 289, 281, 281, + 291, 292, 293, 292, 294, 293, 293, 294, 295, 294, 296, 295, + 295, 296, 297, 296, 298, 297, 297, 298, 299, 298, 300, 299, + 299, 300, 301, 300, 302, 301, 301, 302, 303, 302, 304, 303, + 303, 304, 291, 304, 292, 291, 291, 291, 293, 291, 293, 293, + 293, 293, 295, 293, 295, 295, 295, 295, 297, 295, 297, 297, + 297, 297, 299, 297, 299, 299, 299, 299, 301, 299, 301, 301, + 301, 301, 303, 301, 303, 303, 303, 303, 291, 303, 291, 291, + 305, 306, 307, 306, 308, 307, 307, 308, 309, 308, 284, 309, + 309, 284, 310, 284, 282, 310, 310, 282, 305, 282, 306, 305, + 305, 305, 307, 305, 307, 307, 307, 307, 309, 307, 309, 309, + 309, 309, 310, 309, 310, 310, 310, 310, 305, 310, 305, 305, + 311, 312, 313, 312, 314, 313, 313, 314, 315, 314, 316, 315, + 315, 316, 317, 316, 318, 317, 317, 318, 311, 318, 312, 311, + 311, 311, 313, 311, 313, 313, 313, 313, 315, 313, 315, 315, + 315, 315, 317, 315, 317, 317, 317, 317, 311, 317, 311, 311, + 345, 346, 347, 346, 348, 347, 347, 348, 349, 348, 350, 349, + 349, 350, 351, 350, 352, 351, 351, 352, 353, 352, 354, 353, + 353, 354, 355, 354, 356, 355, 355, 356, 357, 356, 358, 357, + 357, 358, 359, 358, 360, 359, 359, 360, 361, 360, 362, 361, + 361, 362, 363, 362, 364, 363, 363, 364, 365, 364, 366, 365, + 365, 366, 367, 366, 368, 367, 367, 368, 345, 368, 346, 345, + 345, 345, 347, 345, 347, 347, 347, 347, 349, 347, 349, 349, + 349, 349, 351, 349, 351, 351, 351, 351, 353, 351, 353, 353, + 353, 353, 355, 353, 355, 355, 355, 355, 357, 355, 357, 357, + 357, 357, 359, 357, 359, 359, 359, 359, 361, 359, 361, 361, + 361, 361, 363, 361, 363, 363, 363, 363, 365, 363, 365, 365, + 365, 365, 367, 365, 367, 367, 367, 367, 345, 367, 345, 345, + 369, 360, 370, 360, 358, 370, 370, 358, 371, 358, 356, 371, + 371, 356, 372, 356, 354, 372, 372, 354, 373, 354, 352, 373, + 373, 352, 374, 352, 350, 374, 374, 350, 375, 350, 376, 375, + 375, 376, 377, 376, 378, 377, 377, 378, 379, 378, 380, 379, + 379, 380, 381, 380, 382, 381, 381, 382, 383, 382, 384, 383, + 383, 384, 385, 384, 386, 385, 385, 386, 387, 386, 388, 387, + 387, 388, 369, 388, 360, 369, 369, 369, 370, 369, 370, 370, + 370, 370, 371, 370, 371, 371, 371, 371, 372, 371, 372, 372, + 372, 372, 373, 372, 373, 373, 373, 373, 374, 373, 374, 374, + 374, 374, 375, 374, 375, 375, 375, 375, 377, 375, 377, 377, + 377, 377, 379, 377, 379, 379, 379, 379, 381, 379, 381, 381, + 381, 381, 383, 381, 383, 383, 383, 383, 385, 383, 385, 385, + 385, 385, 387, 385, 387, 387, 387, 387, 369, 387, 369, 369, + 389, 390, 391, 390, 392, 391, 391, 392, 393, 392, 394, 393, + 393, 394, 395, 394, 396, 395, 395, 396, 397, 396, 398, 397, + 397, 398, 399, 398, 400, 399, 399, 400, 389, 400, 390, 389, + 389, 389, 391, 389, 391, 391, 391, 391, 393, 391, 393, 393, + 393, 393, 395, 393, 395, 395, 395, 395, 397, 395, 397, 397, + 397, 397, 399, 397, 399, 399, 399, 399, 389, 399, 389, 389, + 401, 402, 403, 402, 404, 403, 403, 404, 405, 404, 406, 405, + 405, 406, 407, 406, 408, 407, 407, 408, 409, 408, 410, 409, + 409, 410, 411, 410, 412, 411, 411, 412, 413, 412, 414, 413, + 413, 414, 415, 414, 416, 415, 415, 416, 401, 416, 402, 401, + 401, 401, 403, 401, 403, 403, 403, 403, 405, 403, 405, 405, + 405, 405, 407, 405, 407, 407, 407, 407, 409, 407, 409, 409, + 409, 409, 411, 409, 411, 411, 411, 411, 413, 411, 413, 413, + 413, 413, 415, 413, 415, 415, 415, 415, 401, 415, 401, 401, + 417, 418, 419, 418, 420, 419, 419, 420, 421, 420, 422, 421, + 421, 422, 423, 422, 424, 423, 423, 424, 425, 424, 426, 425, + 425, 426, 427, 426, 428, 427, 427, 428, 429, 428, 430, 429, + 429, 430, 431, 430, 432, 431, 431, 432, 433, 432, 434, 433, + 433, 434, 417, 434, 418, 417, 417, 417, 419, 417, 419, 419, + 419, 419, 421, 419, 421, 421, 421, 421, 423, 421, 423, 423, + 423, 423, 425, 423, 425, 425, 425, 425, 427, 425, 427, 427, + 427, 427, 429, 427, 429, 429, 429, 429, 431, 429, 431, 431, + 431, 431, 433, 431, 433, 433, 433, 433, 417, 433, 417, 417, + 435, 430, 436, 430, 437, 436, 436, 437, 438, 437, 439, 438, + 438, 439, 440, 439, 441, 440, 440, 441, 442, 441, 443, 442, + 442, 443, 444, 443, 445, 444, 444, 445, 446, 445, 447, 446, + 446, 447, 448, 447, 418, 448, 448, 418, 449, 418, 434, 449, + 449, 434, 450, 434, 432, 450, 450, 432, 435, 432, 430, 435, + 435, 435, 436, 435, 436, 436, 436, 436, 438, 436, 438, 438, + 438, 438, 440, 438, 440, 440, 440, 440, 442, 440, 442, 442, + 442, 442, 444, 442, 444, 444, 444, 444, 446, 444, 446, 446, + 446, 446, 448, 446, 448, 448, 448, 448, 449, 448, 449, 449, + 449, 449, 450, 449, 450, 450, 450, 450, 435, 450, 435, 435, + 451, 420, 452, 420, 453, 452, 452, 453, 454, 453, 455, 454, + 454, 455, 456, 455, 457, 456, 456, 457, 458, 457, 459, 458, + 458, 459, 460, 459, 461, 460, 460, 461, 462, 461, 463, 462, + 462, 463, 464, 463, 465, 464, 464, 465, 466, 465, 467, 466, + 466, 467, 468, 467, 469, 468, 468, 469, 470, 469, 471, 470, + 470, 471, 472, 471, 473, 472, 472, 473, 474, 473, 439, 474, + 474, 439, 475, 439, 437, 475, 475, 437, 476, 437, 430, 476, + 476, 430, 477, 430, 428, 477, 477, 428, 478, 428, 426, 478, + 478, 426, 479, 426, 424, 479, 479, 424, 480, 424, 422, 480, + 480, 422, 451, 422, 420, 451, 451, 451, 452, 451, 452, 452, + 452, 452, 454, 452, 454, 454, 454, 454, 456, 454, 456, 456, + 456, 456, 458, 456, 458, 458, 458, 458, 460, 458, 460, 460, + 460, 460, 462, 460, 462, 462, 462, 462, 464, 462, 464, 464, + 464, 464, 466, 464, 466, 466, 466, 466, 468, 466, 468, 468, + 468, 468, 470, 468, 470, 470, 470, 470, 472, 470, 472, 472, + 472, 472, 474, 472, 474, 474, 474, 474, 475, 474, 475, 475, + 475, 475, 476, 475, 476, 476, 476, 476, 477, 476, 477, 477, + 477, 477, 478, 477, 478, 478, 478, 478, 479, 478, 479, 479, + 479, 479, 480, 479, 480, 480, 480, 480, 451, 480, 451, 451, + 295, 296, 293, 296, 294, 293, 293, 294, 481, 294, 482, 481, + 481, 482, 483, 482, 484, 483, 483, 484, 295, 484, 296, 295, + 295, 295, 293, 295, 293, 293, 293, 293, 481, 293, 481, 481, + 481, 481, 483, 481, 483, 483, 483, 483, 295, 483, 295, 295, + 485, 486, 487, 486, 488, 487, 487, 488, 303, 488, 304, 303, + 303, 304, 301, 304, 302, 301, 301, 302, 299, 302, 300, 299, + 299, 300, 297, 300, 298, 297, 297, 298, 485, 298, 486, 485, + 485, 485, 487, 485, 487, 487, 487, 487, 303, 487, 303, 303, + 303, 303, 301, 303, 301, 301, 301, 301, 299, 301, 299, 299, + 299, 299, 297, 299, 297, 297, 297, 297, 485, 297, 485, 485, + 489, 490, 491, 490, 492, 491, 491, 492, 493, 492, 494, 493, + 493, 494, 495, 494, 496, 495, 495, 496, 489, 496, 490, 489, + 489, 489, 491, 489, 491, 491, 491, 491, 493, 491, 493, 493, + 493, 493, 495, 493, 495, 495, 495, 495, 489, 495, 489, 489, + 495, 496, 493, 496, 494, 493, 493, 494, 497, 494, 498, 497, + 497, 498, 499, 498, 500, 499, 499, 500, 501, 500, 502, 501, + 501, 502, 495, 502, 496, 495, 495, 495, 493, 495, 493, 493, + 493, 493, 497, 493, 497, 497, 497, 497, 499, 497, 499, 499, + 499, 499, 501, 499, 501, 501, 501, 501, 495, 501, 495, 495, + 503, 504, 499, 504, 500, 499, 499, 500, 497, 500, 498, 497, + 497, 498, 505, 498, 506, 505, 505, 506, 507, 506, 508, 507, + 507, 508, 503, 508, 504, 503, 503, 503, 499, 503, 499, 499, + 499, 499, 497, 499, 497, 497, 497, 497, 505, 497, 505, 505, + 505, 505, 507, 505, 507, 507, 507, 507, 503, 507, 503, 503, + 509, 510, 511, 510, 512, 511, 511, 512, 513, 512, 514, 513, + 513, 514, 515, 514, 516, 515, 515, 516, 517, 516, 518, 517, + 517, 518, 519, 518, 520, 519, 519, 520, 521, 520, 522, 521, + 521, 522, 509, 522, 510, 509, 509, 509, 511, 509, 511, 511, + 511, 511, 513, 511, 513, 513, 513, 513, 515, 513, 515, 515, + 515, 515, 517, 515, 517, 517, 517, 517, 519, 517, 519, 519, + 519, 519, 521, 519, 521, 521, 521, 521, 509, 521, 509, 509, + 523, 524, 525, 524, 526, 525, 525, 526, 527, 526, 528, 527, + 527, 528, 529, 528, 530, 529, 529, 530, 531, 530, 532, 531, + 531, 532, 533, 532, 534, 533, 533, 534, 535, 534, 536, 535, + 535, 536, 537, 536, 538, 537, 537, 538, 539, 538, 540, 539, + 539, 540, 541, 540, 542, 541, 541, 542, 543, 542, 544, 543, + 543, 544, 545, 544, 546, 545, 545, 546, 547, 546, 548, 547, + 547, 548, 523, 548, 524, 523, 523, 523, 525, 523, 525, 525, + 525, 525, 527, 525, 527, 527, 527, 527, 529, 527, 529, 529, + 529, 529, 531, 529, 531, 531, 531, 531, 533, 531, 533, 533, + 533, 533, 535, 533, 535, 535, 535, 535, 537, 535, 537, 537, + 537, 537, 539, 537, 539, 539, 539, 539, 541, 539, 541, 541, + 541, 541, 543, 541, 543, 543, 543, 543, 545, 543, 545, 545, + 545, 545, 547, 545, 547, 547, 547, 547, 523, 547, 523, 523, + 549, 550, 551, 550, 552, 551, 551, 552, 553, 552, 554, 553, + 553, 554, 555, 554, 556, 555, 555, 556, 114, 556, 115, 114, + 114, 115, 112, 115, 113, 112, 112, 113, 110, 113, 111, 110, + 110, 111, 557, 111, 558, 557, 557, 558, 559, 558, 560, 559, + 559, 560, 561, 560, 562, 561, 561, 562, 563, 562, 564, 563, + 563, 564, 565, 564, 566, 565, 565, 566, 567, 566, 568, 567, + 567, 568, 569, 568, 570, 569, 569, 570, 571, 570, 572, 571, + 571, 572, 573, 572, 574, 573, 573, 574, 549, 574, 550, 549, + 549, 549, 551, 549, 551, 551, 551, 551, 553, 551, 553, 553, + 553, 553, 555, 553, 555, 555, 555, 555, 114, 555, 114, 114, + 114, 114, 112, 114, 112, 112, 112, 112, 110, 112, 110, 110, + 110, 110, 557, 110, 557, 557, 557, 557, 559, 557, 559, 559, + 559, 559, 561, 559, 561, 561, 561, 561, 563, 561, 563, 563, + 563, 563, 565, 563, 565, 565, 565, 565, 567, 565, 567, 567, + 567, 567, 569, 567, 569, 569, 569, 569, 571, 569, 571, 571, + 571, 571, 573, 571, 573, 573, 573, 573, 549, 573, 549, 549, + 575, 576, 577, 576, 578, 577, 577, 578, 579, 578, 580, 579, + 579, 580, 581, 580, 582, 581, 581, 582, 583, 582, 584, 583, + 583, 584, 585, 584, 586, 585, 585, 586, 587, 586, 588, 587, + 587, 588, 589, 588, 590, 589, 589, 590, 591, 590, 592, 591, + 591, 592, 593, 592, 594, 593, 593, 594, 595, 594, 596, 595, + 595, 596, 597, 596, 598, 597, 597, 598, 599, 598, 600, 599, + 599, 600, 601, 600, 602, 601, 601, 602, 603, 602, 604, 603, + 603, 604, 605, 604, 532, 605, 605, 532, 606, 532, 530, 606, + 606, 530, 575, 530, 576, 575, 575, 575, 577, 575, 577, 577, + 577, 577, 579, 577, 579, 579, 579, 579, 581, 579, 581, 581, + 581, 581, 583, 581, 583, 583, 583, 583, 585, 583, 585, 585, + 585, 585, 587, 585, 587, 587, 587, 587, 589, 587, 589, 589, + 589, 589, 591, 589, 591, 591, 591, 591, 593, 591, 593, 593, + 593, 593, 595, 593, 595, 595, 595, 595, 597, 595, 597, 597, + 597, 597, 599, 597, 599, 599, 599, 599, 601, 599, 601, 601, + 601, 601, 603, 601, 603, 603, 603, 603, 605, 603, 605, 605, + 605, 605, 606, 605, 606, 606, 606, 606, 575, 606, 575, 575, + 607, 608, 609, 608, 610, 609, 609, 610, 611, 610, 612, 611, + 611, 612, 613, 612, 614, 613, 613, 614, 581, 614, 582, 581, + 581, 582, 579, 582, 580, 579, 579, 580, 607, 580, 608, 607, + 607, 607, 609, 607, 609, 609, 609, 609, 611, 609, 611, 611, + 611, 611, 613, 611, 613, 613, 613, 613, 581, 613, 581, 581, + 581, 581, 579, 581, 579, 579, 579, 579, 607, 579, 607, 607, + 615, 616, 617, 616, 618, 617, 617, 618, 619, 618, 510, 619, + 619, 510, 620, 510, 522, 620, 620, 522, 621, 522, 520, 621, + 621, 520, 615, 520, 616, 615, 615, 615, 617, 615, 617, 617, + 617, 617, 619, 617, 619, 619, 619, 619, 620, 619, 620, 620, + 620, 620, 621, 620, 621, 621, 621, 621, 615, 621, 615, 615, + 622, 623, 624, 623, 534, 624, 624, 534, 605, 534, 532, 605, + 605, 532, 603, 532, 604, 603, 603, 604, 622, 604, 623, 622, + 622, 622, 624, 622, 624, 624, 624, 624, 605, 624, 605, 605, + 605, 605, 603, 605, 603, 603, 603, 603, 622, 603, 622, 622, + 625, 626, 627, 626, 628, 627, 627, 628, 629, 628, 630, 629, + 629, 630, 631, 630, 632, 631, 631, 632, 625, 632, 626, 625, + 625, 625, 627, 625, 627, 627, 627, 627, 629, 627, 629, 629, + 629, 629, 631, 629, 631, 631, 631, 631, 625, 631, 625, 625, + 633, 634, 635, 634, 538, 635, 635, 538, 636, 538, 536, 636, + 636, 536, 624, 536, 534, 624, 624, 534, 622, 534, 623, 622, + 622, 623, 637, 623, 638, 637, 637, 638, 639, 638, 640, 639, + 639, 640, 633, 640, 634, 633, 633, 633, 635, 633, 635, 635, + 635, 635, 636, 635, 636, 636, 636, 636, 624, 636, 624, 624, + 624, 624, 622, 624, 622, 622, 622, 622, 637, 622, 637, 637, + 637, 637, 639, 637, 639, 639, 639, 639, 633, 639, 633, 633, + 641, 642, 643, 642, 644, 643, 643, 644, 645, 644, 646, 645, + 645, 646, 647, 646, 542, 647, 647, 542, 648, 542, 540, 648, + 648, 540, 649, 540, 650, 649, 649, 650, 651, 650, 652, 651, + 651, 652, 653, 652, 654, 653, 653, 654, 655, 654, 656, 655, + 655, 656, 641, 656, 642, 641, 641, 641, 643, 641, 643, 643, + 643, 643, 645, 643, 645, 645, 645, 645, 647, 645, 647, 647, + 647, 647, 648, 647, 648, 648, 648, 648, 649, 648, 649, 649, + 649, 649, 651, 649, 651, 651, 651, 651, 653, 651, 653, 653, + 653, 653, 655, 653, 655, 655, 655, 655, 641, 655, 641, 641, + 668, 669, 670, 669, 671, 670, 670, 671, 672, 671, 673, 672, + 672, 673, 674, 673, 675, 674, 674, 675, 668, 675, 669, 668, + 668, 668, 670, 668, 670, 670, 670, 670, 672, 670, 672, 672, + 672, 672, 674, 672, 674, 674, 674, 674, 668, 674, 668, 668, + 120, 121, 118, 121, 119, 118, 118, 119, 676, 119, 677, 676, + 676, 677, 674, 677, 675, 674, 674, 675, 672, 675, 673, 672, + 672, 673, 120, 673, 121, 120, 120, 120, 118, 120, 118, 118, + 118, 118, 676, 118, 676, 676, 676, 676, 674, 676, 674, 674, + 674, 674, 672, 674, 672, 672, 672, 672, 120, 672, 120, 120, + 670, 671, 668, 671, 669, 668, 668, 669, 678, 669, 679, 678, + 678, 679, 680, 679, 681, 680, 680, 681, 682, 681, 683, 682, + 682, 683, 684, 683, 685, 684, 684, 685, 686, 685, 687, 686, + 686, 687, 670, 687, 671, 670, 670, 670, 668, 670, 668, 668, + 668, 668, 678, 668, 678, 678, 678, 678, 680, 678, 680, 680, + 680, 680, 682, 680, 682, 682, 682, 682, 684, 682, 684, 684, + 684, 684, 686, 684, 686, 686, 686, 686, 670, 686, 670, 670, + 688, 689, 690, 689, 691, 690, 690, 691, 692, 691, 693, 692, + 692, 693, 694, 693, 695, 694, 694, 695, 696, 695, 697, 696, + 696, 697, 698, 697, 699, 698, 698, 699, 700, 699, 701, 700, + 700, 701, 702, 701, 703, 702, 702, 703, 704, 703, 705, 704, + 704, 705, 688, 705, 689, 688, 688, 688, 690, 688, 690, 690, + 690, 690, 692, 690, 692, 692, 692, 692, 694, 692, 694, 694, + 694, 694, 696, 694, 696, 696, 696, 696, 698, 696, 698, 698, + 698, 698, 700, 698, 700, 700, 700, 700, 702, 700, 702, 702, + 702, 702, 704, 702, 704, 704, 704, 704, 688, 704, 688, 688, + 692, 693, 706, 693, 707, 706, 706, 707, 708, 707, 709, 708, + 708, 709, 710, 709, 711, 710, 710, 711, 712, 711, 713, 712, + 712, 713, 714, 713, 715, 714, 714, 715, 716, 715, 717, 716, + 716, 717, 718, 717, 93, 718, 718, 93, 719, 93, 109, 719, + 719, 109, 720, 109, 103, 720, 720, 103, 721, 103, 101, 721, + 721, 101, 694, 101, 695, 694, 694, 695, 692, 695, 693, 692, + 692, 692, 706, 692, 706, 706, 706, 706, 708, 706, 708, 708, + 708, 708, 710, 708, 710, 710, 710, 710, 712, 710, 712, 712, + 712, 712, 714, 712, 714, 714, 714, 714, 716, 714, 716, 716, + 716, 716, 718, 716, 718, 718, 718, 718, 719, 718, 719, 719, + 719, 719, 720, 719, 720, 720, 720, 720, 721, 720, 721, 721, + 721, 721, 694, 721, 694, 694, 694, 694, 692, 694, 692, 692, + 722, 723, 724, 723, 725, 724, 724, 725, 726, 725, 727, 726, + 726, 727, 728, 727, 729, 728, 728, 729, 730, 729, 731, 730, + 730, 731, 732, 731, 733, 732, 732, 733, 734, 733, 735, 734, + 734, 735, 736, 735, 737, 736, 736, 737, 738, 737, 739, 738, + 738, 739, 740, 739, 741, 740, 740, 741, 742, 741, 743, 742, + 742, 743, 744, 743, 745, 744, 744, 745, 746, 745, 747, 746, + 746, 747, 748, 747, 749, 748, 748, 749, 750, 749, 751, 750, + 750, 751, 752, 751, 753, 752, 752, 753, 754, 753, 755, 754, + 754, 755, 756, 755, 757, 756, 756, 757, 722, 757, 723, 722, + 722, 722, 724, 722, 724, 724, 724, 724, 726, 724, 726, 726, + 726, 726, 728, 726, 728, 728, 728, 728, 730, 728, 730, 730, + 730, 730, 732, 730, 732, 732, 732, 732, 734, 732, 734, 734, + 734, 734, 736, 734, 736, 736, 736, 736, 738, 736, 738, 738, + 738, 738, 740, 738, 740, 740, 740, 740, 742, 740, 742, 742, + 742, 742, 744, 742, 744, 744, 744, 744, 746, 744, 746, 746, + 746, 746, 748, 746, 748, 748, 748, 748, 750, 748, 750, 750, + 750, 750, 752, 750, 752, 752, 752, 752, 754, 752, 754, 754, + 754, 754, 756, 754, 756, 756, 756, 756, 722, 756, 722, 722, + 758, 759, 760, 759, 761, 760, 760, 761, 762, 761, 763, 762, + 762, 763, 764, 763, 765, 764, 764, 765, 766, 765, 767, 766, + 766, 767, 768, 767, 769, 768, 768, 769, 770, 769, 771, 770, + 770, 771, 772, 771, 773, 772, 772, 773, 774, 773, 775, 774, + 774, 775, 758, 775, 759, 758, 758, 758, 760, 758, 760, 760, + 760, 760, 762, 760, 762, 762, 762, 762, 764, 762, 764, 764, + 764, 764, 766, 764, 766, 766, 766, 766, 768, 766, 768, 768, + 768, 768, 770, 768, 770, 770, 770, 770, 772, 770, 772, 772, + 772, 772, 774, 772, 774, 774, 774, 774, 758, 774, 758, 758, + 776, 777, 770, 777, 771, 770, 770, 771, 768, 771, 769, 768, + 768, 769, 778, 769, 779, 778, 778, 779, 780, 779, 781, 780, + 780, 781, 782, 781, 783, 782, 782, 783, 784, 783, 785, 784, + 784, 785, 776, 785, 777, 776, 776, 776, 770, 776, 770, 770, + 770, 770, 768, 770, 768, 768, 768, 768, 778, 768, 778, 778, + 778, 778, 780, 778, 780, 780, 780, 780, 782, 780, 782, 782, + 782, 782, 784, 782, 784, 784, 784, 784, 776, 784, 776, 776, + 776, 777, 784, 777, 785, 784, 784, 785, 782, 785, 783, 782, + 782, 783, 780, 783, 781, 780, 780, 781, 786, 781, 787, 786, + 786, 787, 788, 787, 789, 788, 788, 789, 790, 789, 791, 790, + 790, 791, 792, 791, 793, 792, 792, 793, 794, 793, 795, 794, + 794, 795, 796, 795, 797, 796, 796, 797, 776, 797, 777, 776, + 776, 776, 784, 776, 784, 784, 784, 784, 782, 784, 782, 782, + 782, 782, 780, 782, 780, 780, 780, 780, 786, 780, 786, 786, + 786, 786, 788, 786, 788, 788, 788, 788, 790, 788, 790, 790, + 790, 790, 792, 790, 792, 792, 792, 792, 794, 792, 794, 794, + 794, 794, 796, 794, 796, 796, 796, 796, 776, 796, 776, 776, + 792, 793, 790, 793, 791, 790, 790, 791, 788, 791, 789, 788, + 788, 789, 786, 789, 787, 786, 786, 787, 780, 787, 781, 780, + 780, 781, 778, 781, 779, 778, 778, 779, 768, 779, 769, 768, + 768, 769, 766, 769, 767, 766, 766, 767, 764, 767, 765, 764, + 764, 765, 762, 765, 763, 762, 762, 763, 760, 763, 761, 760, + 760, 761, 758, 761, 759, 758, 758, 759, 798, 759, 799, 798, + 798, 799, 800, 799, 801, 800, 800, 801, 802, 801, 803, 802, + 802, 803, 804, 803, 805, 804, 804, 805, 806, 805, 807, 806, + 806, 807, 808, 807, 809, 808, 808, 809, 810, 809, 811, 810, + 810, 811, 812, 811, 813, 812, 812, 813, 814, 813, 815, 814, + 814, 815, 816, 815, 817, 816, 816, 817, 818, 817, 819, 818, + 818, 819, 820, 819, 821, 820, 820, 821, 822, 821, 823, 822, + 822, 823, 824, 823, 825, 824, 824, 825, 826, 825, 827, 826, + 826, 827, 828, 827, 829, 828, 828, 829, 830, 829, 831, 830, + 830, 831, 832, 831, 833, 832, 832, 833, 834, 833, 835, 834, + 834, 835, 836, 835, 837, 836, 836, 837, 838, 837, 839, 838, + 838, 839, 840, 839, 841, 840, 840, 841, 842, 841, 843, 842, + 842, 843, 844, 843, 845, 844, 844, 845, 846, 845, 847, 846, + 846, 847, 848, 847, 849, 848, 848, 849, 728, 849, 729, 728, + 728, 729, 726, 729, 727, 726, 726, 727, 724, 727, 725, 724, + 724, 725, 722, 725, 723, 722, 722, 723, 850, 723, 851, 850, + 850, 851, 792, 851, 793, 792, 792, 792, 790, 792, 790, 790, + 790, 790, 788, 790, 788, 788, 788, 788, 786, 788, 786, 786, + 786, 786, 780, 786, 780, 780, 780, 780, 778, 780, 778, 778, + 778, 778, 768, 778, 768, 768, 768, 768, 766, 768, 766, 766, + 766, 766, 764, 766, 764, 764, 764, 764, 762, 764, 762, 762, + 762, 762, 760, 762, 760, 760, 760, 760, 758, 760, 758, 758, + 758, 758, 798, 758, 798, 798, 798, 798, 800, 798, 800, 800, + 800, 800, 802, 800, 802, 802, 802, 802, 804, 802, 804, 804, + 804, 804, 806, 804, 806, 806, 806, 806, 808, 806, 808, 808, + 808, 808, 810, 808, 810, 810, 810, 810, 812, 810, 812, 812, + 812, 812, 814, 812, 814, 814, 814, 814, 816, 814, 816, 816, + 816, 816, 818, 816, 818, 818, 818, 818, 820, 818, 820, 820, + 820, 820, 822, 820, 822, 822, 822, 822, 824, 822, 824, 824, + 824, 824, 826, 824, 826, 826, 826, 826, 828, 826, 828, 828, + 828, 828, 830, 828, 830, 830, 830, 830, 832, 830, 832, 832, + 832, 832, 834, 832, 834, 834, 834, 834, 836, 834, 836, 836, + 836, 836, 838, 836, 838, 838, 838, 838, 840, 838, 840, 840, + 840, 840, 842, 840, 842, 842, 842, 842, 844, 842, 844, 844, + 844, 844, 846, 844, 846, 846, 846, 846, 848, 846, 848, 848, + 848, 848, 728, 848, 728, 728, 728, 728, 726, 728, 726, 726, + 726, 726, 724, 726, 724, 724, 724, 724, 722, 724, 722, 722, + 722, 722, 850, 722, 850, 850, 850, 850, 792, 850, 792, 792, + 852, 853, 854, 853, 855, 854, 854, 855, 856, 855, 857, 856, + 856, 857, 858, 857, 859, 858, 858, 859, 860, 859, 861, 860, + 860, 861, 862, 861, 863, 862, 862, 863, 864, 863, 865, 864, + 864, 865, 866, 865, 867, 866, 866, 867, 868, 867, 869, 868, + 868, 869, 870, 869, 871, 870, 870, 871, 852, 871, 853, 852, + 852, 852, 854, 852, 854, 854, 854, 854, 856, 854, 856, 856, + 856, 856, 858, 856, 858, 858, 858, 858, 860, 858, 860, 860, + 860, 860, 862, 860, 862, 862, 862, 862, 864, 862, 864, 864, + 864, 864, 866, 864, 866, 866, 866, 866, 868, 866, 868, 868, + 868, 868, 870, 868, 870, 870, 870, 870, 852, 870, 852, 852, + 864, 865, 862, 865, 863, 862, 862, 863, 872, 863, 873, 872, + 872, 873, 874, 873, 875, 874, 874, 875, 876, 875, 877, 876, + 876, 877, 878, 877, 879, 878, 878, 879, 880, 879, 881, 880, + 880, 881, 882, 881, 883, 882, 882, 883, 884, 883, 885, 884, + 884, 885, 886, 885, 887, 886, 886, 887, 888, 887, 889, 888, + 888, 889, 864, 889, 865, 864, 864, 864, 862, 864, 862, 862, + 862, 862, 872, 862, 872, 872, 872, 872, 874, 872, 874, 874, + 874, 874, 876, 874, 876, 876, 876, 876, 878, 876, 878, 878, + 878, 878, 880, 878, 880, 880, 880, 880, 882, 880, 882, 882, + 882, 882, 884, 882, 884, 884, 884, 884, 886, 884, 886, 886, + 886, 886, 888, 886, 888, 888, 888, 888, 864, 888, 864, 864, + 890, 891, 892, 891, 893, 892, 892, 893, 894, 893, 895, 894, + 894, 895, 896, 895, 897, 896, 896, 897, 898, 897, 899, 898, + 898, 899, 890, 899, 891, 890, 890, 890, 892, 890, 892, 892, + 892, 892, 894, 892, 894, 894, 894, 894, 896, 894, 896, 896, + 896, 896, 898, 896, 898, 898, 898, 898, 890, 898, 890, 890, + 900, 901, 902, 901, 903, 902, 902, 903, 904, 903, 905, 904, + 904, 905, 906, 905, 907, 906, 906, 907, 900, 907, 901, 900, + 900, 900, 902, 900, 902, 902, 902, 902, 904, 902, 904, 904, + 904, 904, 906, 904, 906, 906, 906, 906, 900, 906, 900, 900, + 908, 909, 910, 909, 911, 910, 910, 911, 912, 911, 163, 912, + 912, 163, 913, 163, 161, 913, 913, 161, 908, 161, 909, 908, + 908, 908, 910, 908, 910, 910, 910, 910, 912, 910, 912, 912, + 912, 912, 913, 912, 913, 913, 913, 913, 908, 913, 908, 908, + 914, 394, 915, 394, 889, 915, 915, 889, 916, 889, 887, 916, + 916, 887, 917, 887, 396, 917, 917, 396, 914, 396, 394, 914, + 914, 914, 915, 914, 915, 915, 915, 915, 916, 915, 916, 916, + 916, 916, 917, 916, 917, 917, 917, 917, 914, 917, 914, 914, + 918, 919, 920, 919, 921, 920, 920, 921, 900, 921, 901, 900, + 900, 901, 906, 901, 907, 906, 906, 907, 918, 907, 919, 918, + 918, 918, 920, 918, 920, 920, 920, 920, 900, 920, 900, 900, + 900, 900, 906, 900, 906, 906, 906, 906, 918, 906, 918, 918, + 910, 911, 908, 911, 909, 908, 908, 909, 922, 909, 923, 922, + 922, 923, 924, 923, 925, 924, 924, 925, 926, 925, 927, 926, + 926, 927, 910, 927, 911, 910, 910, 910, 908, 910, 908, 908, + 908, 908, 922, 908, 922, 922, 922, 922, 924, 922, 924, 924, + 924, 924, 926, 924, 926, 926, 926, 926, 910, 926, 910, 910, + 928, 929, 930, 929, 931, 930, 930, 931, 932, 931, 933, 932, + 932, 933, 934, 933, 935, 934, 934, 935, 904, 935, 905, 904, + 904, 905, 902, 905, 903, 902, 902, 903, 860, 903, 861, 860, + 860, 861, 858, 861, 859, 858, 858, 859, 936, 859, 937, 936, + 936, 937, 928, 937, 929, 928, 928, 928, 930, 928, 930, 930, + 930, 930, 932, 930, 932, 932, 932, 932, 934, 932, 934, 934, + 934, 934, 904, 934, 904, 904, 904, 904, 902, 904, 902, 902, + 902, 902, 860, 902, 860, 860, 860, 860, 858, 860, 858, 858, + 858, 858, 936, 858, 936, 936, 936, 936, 928, 936, 928, 928, + 918, 919, 938, 919, 939, 938, 938, 939, 940, 939, 941, 940, + 940, 941, 942, 941, 943, 942, 942, 943, 944, 943, 945, 944, + 944, 945, 946, 945, 947, 946, 946, 947, 948, 947, 949, 948, + 948, 949, 950, 949, 951, 950, 950, 951, 952, 951, 953, 952, + 952, 953, 954, 953, 955, 954, 954, 955, 956, 955, 957, 956, + 956, 957, 958, 957, 959, 958, 958, 959, 960, 959, 961, 960, + 960, 961, 962, 961, 963, 962, 962, 963, 964, 963, 965, 964, + 964, 965, 966, 965, 967, 966, 966, 967, 920, 967, 921, 920, + 920, 921, 918, 921, 919, 918, 918, 918, 938, 918, 938, 938, + 938, 938, 940, 938, 940, 940, 940, 940, 942, 940, 942, 942, + 942, 942, 944, 942, 944, 944, 944, 944, 946, 944, 946, 946, + 946, 946, 948, 946, 948, 948, 948, 948, 950, 948, 950, 950, + 950, 950, 952, 950, 952, 952, 952, 952, 954, 952, 954, 954, + 954, 954, 956, 954, 956, 956, 956, 956, 958, 956, 958, 958, + 958, 958, 960, 958, 960, 960, 960, 960, 962, 960, 962, 962, + 962, 962, 964, 962, 964, 964, 964, 964, 966, 964, 966, 966, + 966, 966, 920, 966, 920, 920, 920, 920, 918, 920, 918, 918, + 968, 969, 928, 969, 929, 928, 928, 929, 936, 929, 937, 936, + 936, 937, 970, 937, 971, 970, 970, 971, 972, 971, 973, 972, + 972, 973, 974, 973, 975, 974, 974, 975, 968, 975, 969, 968, + 968, 968, 928, 968, 928, 928, 928, 928, 936, 928, 936, 936, + 936, 936, 970, 936, 970, 970, 970, 970, 972, 970, 972, 972, + 972, 972, 974, 972, 974, 974, 974, 974, 968, 974, 968, 968, + 974, 975, 972, 975, 973, 972, 972, 973, 970, 973, 971, 970, + 970, 971, 852, 971, 853, 852, 852, 853, 870, 853, 871, 870, + 870, 871, 868, 871, 869, 868, 868, 869, 866, 869, 867, 866, + 866, 867, 976, 867, 977, 976, 976, 977, 978, 977, 979, 978, + 978, 979, 391, 979, 392, 391, 391, 392, 389, 392, 390, 389, + 389, 390, 974, 390, 975, 974, 974, 974, 972, 974, 972, 972, + 972, 972, 970, 972, 970, 970, 970, 970, 852, 970, 852, 852, + 852, 852, 870, 852, 870, 870, 870, 870, 868, 870, 868, 868, + 868, 868, 866, 868, 866, 866, 866, 866, 976, 866, 976, 976, + 976, 976, 978, 976, 978, 978, 978, 978, 391, 978, 391, 391, + 391, 391, 389, 391, 389, 389, 389, 389, 974, 389, 974, 974, + 399, 400, 397, 400, 398, 397, 397, 398, 980, 398, 981, 980, + 980, 981, 982, 981, 983, 982, 982, 983, 984, 983, 891, 984, + 984, 891, 985, 891, 899, 985, 985, 899, 986, 899, 987, 986, + 986, 987, 988, 987, 989, 988, 988, 989, 399, 989, 400, 399, + 399, 399, 397, 399, 397, 397, 397, 397, 980, 397, 980, 980, + 980, 980, 982, 980, 982, 982, 982, 982, 984, 982, 984, 984, + 984, 984, 985, 984, 985, 985, 985, 985, 986, 985, 986, 986, + 986, 986, 988, 986, 988, 988, 988, 988, 399, 988, 399, 399, + 990, 330, 991, 330, 992, 991, 991, 992, 993, 992, 994, 993, + 993, 994, 995, 994, 996, 995, 995, 996, 997, 996, 998, 997, + 997, 998, 999, 998, 332, 999, 999, 332, 990, 332, 330, 990, + 990, 990, 991, 990, 991, 991, 991, 991, 993, 991, 993, 993, + 993, 993, 995, 993, 995, 995, 995, 995, 997, 995, 997, 997, + 997, 997, 999, 997, 999, 999, 999, 999, 990, 999, 990, 990, + 997, 998, 995, 998, 996, 995, 995, 996, 1000, 996, 1001, 1000, + 1000, 1001, 930, 1001, 931, 930, 930, 931, 928, 931, 929, 928, + 928, 929, 968, 929, 969, 968, 968, 969, 997, 969, 998, 997, + 997, 997, 995, 997, 995, 995, 995, 995, 1000, 995, 1000, 1000, + 1000, 1000, 930, 1000, 930, 930, 930, 930, 928, 930, 928, 928, + 928, 928, 968, 928, 968, 968, 968, 968, 997, 968, 997, 997, + 1002, 1003, 1004, 1003, 1005, 1004, 1004, 1005, 1006, 1005, 1007, 1006, + 1006, 1007, 1008, 1007, 1009, 1008, 1008, 1009, 1010, 1009, 1011, 1010, + 1010, 1011, 1012, 1011, 1013, 1012, 1012, 1013, 1014, 1013, 1015, 1014, + 1014, 1015, 1016, 1015, 1017, 1016, 1016, 1017, 1018, 1017, 1019, 1018, + 1018, 1019, 1020, 1019, 1021, 1020, 1020, 1021, 1022, 1021, 1023, 1022, + 1022, 1023, 1024, 1023, 1025, 1024, 1024, 1025, 1026, 1025, 1027, 1026, + 1026, 1027, 1028, 1027, 1029, 1028, 1028, 1029, 1030, 1029, 1031, 1030, + 1030, 1031, 1002, 1031, 1003, 1002, 1002, 1002, 1004, 1002, 1004, 1004, + 1004, 1004, 1006, 1004, 1006, 1006, 1006, 1006, 1008, 1006, 1008, 1008, + 1008, 1008, 1010, 1008, 1010, 1010, 1010, 1010, 1012, 1010, 1012, 1012, + 1012, 1012, 1014, 1012, 1014, 1014, 1014, 1014, 1016, 1014, 1016, 1016, + 1016, 1016, 1018, 1016, 1018, 1018, 1018, 1018, 1020, 1018, 1020, 1020, + 1020, 1020, 1022, 1020, 1022, 1022, 1022, 1022, 1024, 1022, 1024, 1024, + 1024, 1024, 1026, 1024, 1026, 1026, 1026, 1026, 1028, 1026, 1028, 1028, + 1028, 1028, 1030, 1028, 1030, 1030, 1030, 1030, 1002, 1030, 1002, 1002, + 1032, 1033, 1034, 1033, 1035, 1034, 1034, 1035, 1036, 1035, 612, 1036, + 1036, 612, 1037, 612, 610, 1037, 1037, 610, 1032, 610, 1033, 1032, + 1032, 1032, 1034, 1032, 1034, 1034, 1034, 1034, 1036, 1034, 1036, 1036, + 1036, 1036, 1037, 1036, 1037, 1037, 1037, 1037, 1032, 1037, 1032, 1032, + 1037, 610, 1038, 610, 1039, 1038, 1038, 1039, 1040, 1039, 1041, 1040, + 1040, 1041, 1032, 1041, 1033, 1032, 1032, 1033, 1037, 1033, 610, 1037, + 1037, 1037, 1038, 1037, 1038, 1038, 1038, 1038, 1040, 1038, 1040, 1040, + 1040, 1040, 1032, 1040, 1032, 1032, 1032, 1032, 1037, 1032, 1037, 1037, + 609, 610, 607, 610, 608, 607, 607, 608, 1042, 608, 1043, 1042, + 1042, 1043, 1044, 1043, 1045, 1044, 1044, 1045, 1046, 1045, 1047, 1046, + 1046, 1047, 1048, 1047, 1039, 1048, 1048, 1039, 609, 1039, 610, 609, + 609, 609, 607, 609, 607, 607, 607, 607, 1042, 607, 1042, 1042, + 1042, 1042, 1044, 1042, 1044, 1044, 1044, 1044, 1046, 1044, 1046, 1046, + 1046, 1046, 1048, 1046, 1048, 1048, 1048, 1048, 609, 1048, 609, 609, + 1049, 1050, 1051, 1050, 1052, 1051, 1051, 1052, 1053, 1052, 1054, 1053, + 1053, 1054, 1055, 1054, 1056, 1055, 1055, 1056, 1057, 1056, 1058, 1057, + 1057, 1058, 1059, 1058, 1060, 1059, 1059, 1060, 1049, 1060, 1050, 1049, + 1049, 1049, 1051, 1049, 1051, 1051, 1051, 1051, 1053, 1051, 1053, 1053, + 1053, 1053, 1055, 1053, 1055, 1055, 1055, 1055, 1057, 1055, 1057, 1057, + 1057, 1057, 1059, 1057, 1059, 1059, 1059, 1059, 1049, 1059, 1049, 1049, + 1049, 1050, 1059, 1050, 1060, 1059, 1059, 1060, 1057, 1060, 1058, 1057, + 1057, 1058, 1008, 1058, 1009, 1008, 1008, 1009, 1006, 1009, 1007, 1006, + 1006, 1007, 1004, 1007, 1005, 1004, 1004, 1005, 1002, 1005, 1003, 1002, + 1002, 1003, 1061, 1003, 1062, 1061, 1061, 1062, 1049, 1062, 1050, 1049, + 1049, 1049, 1059, 1049, 1059, 1059, 1059, 1059, 1057, 1059, 1057, 1057, + 1057, 1057, 1008, 1057, 1008, 1008, 1008, 1008, 1006, 1008, 1006, 1006, + 1006, 1006, 1004, 1006, 1004, 1004, 1004, 1004, 1002, 1004, 1002, 1002, + 1002, 1002, 1061, 1002, 1061, 1061, 1061, 1061, 1049, 1061, 1049, 1049, + 1063, 1064, 1065, 1064, 1066, 1065, 1065, 1066, 1067, 1066, 1068, 1067, + 1067, 1068, 1069, 1068, 1070, 1069, 1069, 1070, 1071, 1070, 1072, 1071, + 1071, 1072, 1073, 1072, 1074, 1073, 1073, 1074, 1075, 1074, 1076, 1075, + 1075, 1076, 1077, 1076, 1078, 1077, 1077, 1078, 1079, 1078, 1080, 1079, + 1079, 1080, 1081, 1080, 1082, 1081, 1081, 1082, 1083, 1082, 1084, 1083, + 1083, 1084, 1063, 1084, 1064, 1063, 1063, 1063, 1065, 1063, 1065, 1065, + 1065, 1065, 1067, 1065, 1067, 1067, 1067, 1067, 1069, 1067, 1069, 1069, + 1069, 1069, 1071, 1069, 1071, 1071, 1071, 1071, 1073, 1071, 1073, 1073, + 1073, 1073, 1075, 1073, 1075, 1075, 1075, 1075, 1077, 1075, 1077, 1077, + 1077, 1077, 1079, 1077, 1079, 1079, 1079, 1079, 1081, 1079, 1081, 1081, + 1081, 1081, 1083, 1081, 1083, 1083, 1083, 1083, 1063, 1083, 1063, 1063, + 1085, 1086, 1087, 1086, 1088, 1087, 1087, 1088, 1083, 1088, 1084, 1083, + 1083, 1084, 1081, 1084, 1082, 1081, 1081, 1082, 1089, 1082, 1090, 1089, + 1089, 1090, 1085, 1090, 1086, 1085, 1085, 1085, 1087, 1085, 1087, 1087, + 1087, 1087, 1083, 1087, 1083, 1083, 1083, 1083, 1081, 1083, 1081, 1081, + 1081, 1081, 1089, 1081, 1089, 1089, 1089, 1089, 1085, 1089, 1085, 1085, + 1044, 1045, 1042, 1045, 1043, 1042, 1042, 1043, 1091, 1043, 1092, 1091, + 1091, 1092, 1093, 1092, 1094, 1093, 1093, 1094, 1095, 1094, 1096, 1095, + 1095, 1096, 1097, 1096, 1098, 1097, 1097, 1098, 1099, 1098, 1100, 1099, + 1099, 1100, 1101, 1100, 1102, 1101, 1101, 1102, 1103, 1102, 1104, 1103, + 1103, 1104, 1087, 1104, 1088, 1087, 1087, 1088, 1085, 1088, 1086, 1085, + 1085, 1086, 1105, 1086, 1106, 1105, 1105, 1106, 1107, 1106, 1108, 1107, + 1107, 1108, 1109, 1108, 1110, 1109, 1109, 1110, 1044, 1110, 1045, 1044, + 1044, 1044, 1042, 1044, 1042, 1042, 1042, 1042, 1091, 1042, 1091, 1091, + 1091, 1091, 1093, 1091, 1093, 1093, 1093, 1093, 1095, 1093, 1095, 1095, + 1095, 1095, 1097, 1095, 1097, 1097, 1097, 1097, 1099, 1097, 1099, 1099, + 1099, 1099, 1101, 1099, 1101, 1101, 1101, 1101, 1103, 1101, 1103, 1103, + 1103, 1103, 1087, 1103, 1087, 1087, 1087, 1087, 1085, 1087, 1085, 1085, + 1085, 1085, 1105, 1085, 1105, 1105, 1105, 1105, 1107, 1105, 1107, 1107, + 1107, 1107, 1109, 1107, 1109, 1109, 1109, 1109, 1044, 1109, 1044, 1044, + 1065, 1066, 1063, 1066, 1064, 1063, 1063, 1064, 1111, 1064, 1112, 1111, + 1111, 1112, 1113, 1112, 1114, 1113, 1113, 1114, 1115, 1114, 1116, 1115, + 1115, 1116, 1117, 1116, 1118, 1117, 1117, 1118, 1119, 1118, 1120, 1119, + 1119, 1120, 1065, 1120, 1066, 1065, 1065, 1065, 1063, 1065, 1063, 1063, + 1063, 1063, 1111, 1063, 1111, 1111, 1111, 1111, 1113, 1111, 1113, 1113, + 1113, 1113, 1115, 1113, 1115, 1115, 1115, 1115, 1117, 1115, 1117, 1117, + 1117, 1117, 1119, 1117, 1119, 1119, 1119, 1119, 1065, 1119, 1065, 1065, + 1121, 1122, 1123, 1122, 1124, 1123, 1123, 1124, 1075, 1124, 1076, 1075, + 1075, 1076, 1073, 1076, 1074, 1073, 1073, 1074, 1125, 1074, 1126, 1125, + 1125, 1126, 1127, 1126, 1128, 1127, 1127, 1128, 1129, 1128, 1130, 1129, + 1129, 1130, 1115, 1130, 1116, 1115, 1115, 1116, 1113, 1116, 1114, 1113, + 1113, 1114, 1121, 1114, 1122, 1121, 1121, 1121, 1123, 1121, 1123, 1123, + 1123, 1123, 1075, 1123, 1075, 1075, 1075, 1075, 1073, 1075, 1073, 1073, + 1073, 1073, 1125, 1073, 1125, 1125, 1125, 1125, 1127, 1125, 1127, 1127, + 1127, 1127, 1129, 1127, 1129, 1129, 1129, 1129, 1115, 1129, 1115, 1115, + 1115, 1115, 1113, 1115, 1113, 1113, 1113, 1113, 1121, 1113, 1121, 1121, + 1123, 1124, 1121, 1124, 1122, 1121, 1121, 1122, 1055, 1122, 1056, 1055, + 1055, 1056, 1053, 1056, 1054, 1053, 1053, 1054, 1123, 1054, 1124, 1123, + 1123, 1123, 1121, 1123, 1121, 1121, 1121, 1121, 1055, 1121, 1055, 1055, + 1055, 1055, 1053, 1055, 1053, 1053, 1053, 1053, 1123, 1053, 1123, 1123, + 1131, 1132, 1133, 1132, 1134, 1133, 1133, 1134, 1135, 1134, 1136, 1135, + 1135, 1136, 1137, 1136, 1138, 1137, 1137, 1138, 1139, 1138, 1140, 1139, + 1139, 1140, 1141, 1140, 1142, 1141, 1141, 1142, 1131, 1142, 1132, 1131, + 1131, 1131, 1133, 1131, 1133, 1133, 1133, 1133, 1135, 1133, 1135, 1135, + 1135, 1135, 1137, 1135, 1137, 1137, 1137, 1137, 1139, 1137, 1139, 1139, + 1139, 1139, 1141, 1139, 1141, 1141, 1141, 1141, 1131, 1141, 1131, 1131, + 1143, 1144, 1141, 1144, 1142, 1141, 1141, 1142, 1139, 1142, 1140, 1139, + 1139, 1140, 1145, 1140, 1146, 1145, 1145, 1146, 1147, 1146, 1148, 1147, + 1147, 1148, 1149, 1148, 1150, 1149, 1149, 1150, 1151, 1150, 1152, 1151, + 1151, 1152, 1153, 1152, 1154, 1153, 1153, 1154, 1155, 1154, 1156, 1155, + 1155, 1156, 1143, 1156, 1144, 1143, 1143, 1143, 1141, 1143, 1141, 1141, + 1141, 1141, 1139, 1141, 1139, 1139, 1139, 1139, 1145, 1139, 1145, 1145, + 1145, 1145, 1147, 1145, 1147, 1147, 1147, 1147, 1149, 1147, 1149, 1149, + 1149, 1149, 1151, 1149, 1151, 1151, 1151, 1151, 1153, 1151, 1153, 1153, + 1153, 1153, 1155, 1153, 1155, 1155, 1155, 1155, 1143, 1155, 1143, 1143, + 409, 410, 407, 410, 408, 407, 407, 408, 1157, 408, 1158, 1157, + 1157, 1158, 1159, 1158, 1160, 1159, 1159, 1160, 1135, 1160, 1136, 1135, + 1135, 1136, 1133, 1136, 1134, 1133, 1133, 1134, 1161, 1134, 1162, 1161, + 1161, 1162, 409, 1162, 410, 409, 409, 409, 407, 409, 407, 407, + 407, 407, 1157, 407, 1157, 1157, 1157, 1157, 1159, 1157, 1159, 1159, + 1159, 1159, 1135, 1159, 1135, 1135, 1135, 1135, 1133, 1135, 1133, 1133, + 1133, 1133, 1161, 1133, 1161, 1161, 1161, 1161, 409, 1161, 409, 409, + 1163, 1164, 1165, 1164, 1166, 1165, 1165, 1166, 1167, 1166, 1168, 1167, + 1167, 1168, 1169, 1168, 1170, 1169, 1169, 1170, 1171, 1170, 1172, 1171, + 1171, 1172, 1173, 1172, 1174, 1173, 1173, 1174, 1175, 1174, 1176, 1175, + 1175, 1176, 1177, 1176, 1178, 1177, 1177, 1178, 1179, 1178, 1180, 1179, + 1179, 1180, 1181, 1180, 1182, 1181, 1181, 1182, 1183, 1182, 1184, 1183, + 1183, 1184, 1185, 1184, 1186, 1185, 1185, 1186, 1187, 1186, 1188, 1187, + 1187, 1188, 1189, 1188, 1190, 1189, 1189, 1190, 1191, 1190, 1192, 1191, + 1191, 1192, 1193, 1192, 1194, 1193, 1193, 1194, 1195, 1194, 1196, 1195, + 1195, 1196, 1197, 1196, 1198, 1197, 1197, 1198, 1199, 1198, 1200, 1199, + 1199, 1200, 1201, 1200, 1202, 1201, 1201, 1202, 1203, 1202, 1204, 1203, + 1203, 1204, 1205, 1204, 1206, 1205, 1205, 1206, 1207, 1206, 1208, 1207, + 1207, 1208, 1209, 1208, 1210, 1209, 1209, 1210, 1211, 1210, 1212, 1211, + 1211, 1212, 1213, 1212, 1214, 1213, 1213, 1214, 1215, 1214, 1216, 1215, + 1215, 1216, 1217, 1216, 1218, 1217, 1217, 1218, 1219, 1218, 1220, 1219, + 1219, 1220, 1221, 1220, 1222, 1221, 1221, 1222, 1223, 1222, 1224, 1223, + 1223, 1224, 1225, 1224, 1226, 1225, 1225, 1226, 1227, 1226, 1228, 1227, + 1227, 1228, 1229, 1228, 1230, 1229, 1229, 1230, 1231, 1230, 1232, 1231, + 1231, 1232, 1233, 1232, 1234, 1233, 1233, 1234, 1235, 1234, 1236, 1235, + 1235, 1236, 1237, 1236, 1238, 1237, 1237, 1238, 1239, 1238, 1240, 1239, + 1239, 1240, 1241, 1240, 1242, 1241, 1241, 1242, 1243, 1242, 1244, 1243, + 1243, 1244, 1245, 1244, 1246, 1245, 1245, 1246, 1247, 1246, 1248, 1247, + 1247, 1248, 1249, 1248, 1250, 1249, 1249, 1250, 1251, 1250, 1252, 1251, + 1251, 1252, 1253, 1252, 1254, 1253, 1253, 1254, 1255, 1254, 1256, 1255, + 1255, 1256, 1257, 1256, 1258, 1257, 1257, 1258, 1259, 1258, 1260, 1259, + 1259, 1260, 1261, 1260, 1262, 1261, 1261, 1262, 1263, 1262, 1264, 1263, + 1263, 1264, 1265, 1264, 1266, 1265, 1265, 1266, 1267, 1266, 1268, 1267, + 1267, 1268, 1269, 1268, 1270, 1269, 1269, 1270, 1271, 1270, 1272, 1271, + 1271, 1272, 1273, 1272, 1274, 1273, 1273, 1274, 1275, 1274, 1276, 1275, + 1275, 1276, 1277, 1276, 1278, 1277, 1277, 1278, 1279, 1278, 1280, 1279, + 1279, 1280, 1281, 1280, 1282, 1281, 1281, 1282, 1283, 1282, 1284, 1283, + 1283, 1284, 1285, 1284, 1286, 1285, 1285, 1286, 1287, 1286, 1288, 1287, + 1287, 1288, 1289, 1288, 1290, 1289, 1289, 1290, 1291, 1290, 1292, 1291, + 1291, 1292, 1293, 1292, 1294, 1293, 1293, 1294, 1295, 1294, 1296, 1295, + 1295, 1296, 1163, 1296, 1164, 1163, 1163, 1163, 1165, 1163, 1165, 1165, + 1165, 1165, 1167, 1165, 1167, 1167, 1167, 1167, 1169, 1167, 1169, 1169, + 1169, 1169, 1171, 1169, 1171, 1171, 1171, 1171, 1173, 1171, 1173, 1173, + 1173, 1173, 1175, 1173, 1175, 1175, 1175, 1175, 1177, 1175, 1177, 1177, + 1177, 1177, 1179, 1177, 1179, 1179, 1179, 1179, 1181, 1179, 1181, 1181, + 1181, 1181, 1183, 1181, 1183, 1183, 1183, 1183, 1185, 1183, 1185, 1185, + 1185, 1185, 1187, 1185, 1187, 1187, 1187, 1187, 1189, 1187, 1189, 1189, + 1189, 1189, 1191, 1189, 1191, 1191, 1191, 1191, 1193, 1191, 1193, 1193, + 1193, 1193, 1195, 1193, 1195, 1195, 1195, 1195, 1197, 1195, 1197, 1197, + 1197, 1197, 1199, 1197, 1199, 1199, 1199, 1199, 1201, 1199, 1201, 1201, + 1201, 1201, 1203, 1201, 1203, 1203, 1203, 1203, 1205, 1203, 1205, 1205, + 1205, 1205, 1207, 1205, 1207, 1207, 1207, 1207, 1209, 1207, 1209, 1209, + 1209, 1209, 1211, 1209, 1211, 1211, 1211, 1211, 1213, 1211, 1213, 1213, + 1213, 1213, 1215, 1213, 1215, 1215, 1215, 1215, 1217, 1215, 1217, 1217, + 1217, 1217, 1219, 1217, 1219, 1219, 1219, 1219, 1221, 1219, 1221, 1221, + 1221, 1221, 1223, 1221, 1223, 1223, 1223, 1223, 1225, 1223, 1225, 1225, + 1225, 1225, 1227, 1225, 1227, 1227, 1227, 1227, 1229, 1227, 1229, 1229, + 1229, 1229, 1231, 1229, 1231, 1231, 1231, 1231, 1233, 1231, 1233, 1233, + 1233, 1233, 1235, 1233, 1235, 1235, 1235, 1235, 1237, 1235, 1237, 1237, + 1237, 1237, 1239, 1237, 1239, 1239, 1239, 1239, 1241, 1239, 1241, 1241, + 1241, 1241, 1243, 1241, 1243, 1243, 1243, 1243, 1245, 1243, 1245, 1245, + 1245, 1245, 1247, 1245, 1247, 1247, 1247, 1247, 1249, 1247, 1249, 1249, + 1249, 1249, 1251, 1249, 1251, 1251, 1251, 1251, 1253, 1251, 1253, 1253, + 1253, 1253, 1255, 1253, 1255, 1255, 1255, 1255, 1257, 1255, 1257, 1257, + 1257, 1257, 1259, 1257, 1259, 1259, 1259, 1259, 1261, 1259, 1261, 1261, + 1261, 1261, 1263, 1261, 1263, 1263, 1263, 1263, 1265, 1263, 1265, 1265, + 1265, 1265, 1267, 1265, 1267, 1267, 1267, 1267, 1269, 1267, 1269, 1269, + 1269, 1269, 1271, 1269, 1271, 1271, 1271, 1271, 1273, 1271, 1273, 1273, + 1273, 1273, 1275, 1273, 1275, 1275, 1275, 1275, 1277, 1275, 1277, 1277, + 1277, 1277, 1279, 1277, 1279, 1279, 1279, 1279, 1281, 1279, 1281, 1281, + 1281, 1281, 1283, 1281, 1283, 1283, 1283, 1283, 1285, 1283, 1285, 1285, + 1285, 1285, 1287, 1285, 1287, 1287, 1287, 1287, 1289, 1287, 1289, 1289, + 1289, 1289, 1291, 1289, 1291, 1291, 1291, 1291, 1293, 1291, 1293, 1293, + 1293, 1293, 1295, 1293, 1295, 1295, 1295, 1295, 1163, 1295, 1163, 1163, + 1297, 1298, 1299, 1298, 1300, 1299, 1299, 1300, 1301, 1300, 1302, 1301, + 1301, 1302, 1303, 1302, 1304, 1303, 1303, 1304, 1305, 1304, 1306, 1305, + 1305, 1306, 1307, 1306, 1308, 1307, 1307, 1308, 1309, 1308, 1310, 1309, + 1309, 1310, 1311, 1310, 1312, 1311, 1311, 1312, 1313, 1312, 1314, 1313, + 1313, 1314, 1315, 1314, 1316, 1315, 1315, 1316, 1297, 1316, 1298, 1297, + 1297, 1297, 1299, 1297, 1299, 1299, 1299, 1299, 1301, 1299, 1301, 1301, + 1301, 1301, 1303, 1301, 1303, 1303, 1303, 1303, 1305, 1303, 1305, 1305, + 1305, 1305, 1307, 1305, 1307, 1307, 1307, 1307, 1309, 1307, 1309, 1309, + 1309, 1309, 1311, 1309, 1311, 1311, 1311, 1311, 1313, 1311, 1313, 1313, + 1313, 1313, 1315, 1313, 1315, 1315, 1315, 1315, 1297, 1315, 1297, 1297, + 1317, 1318, 1319, 1318, 1320, 1319, 1319, 1320, 1321, 1320, 1322, 1321, + 1321, 1322, 1323, 1322, 1324, 1323, 1323, 1324, 1317, 1324, 1318, 1317, + 1317, 1317, 1319, 1317, 1319, 1319, 1319, 1319, 1321, 1319, 1321, 1321, + 1321, 1321, 1323, 1321, 1323, 1323, 1323, 1323, 1317, 1323, 1317, 1317, + 1325, 1324, 1326, 1324, 1322, 1326, 1326, 1322, 1327, 1322, 1328, 1327, + 1327, 1328, 1329, 1328, 1330, 1329, 1329, 1330, 1331, 1330, 1332, 1331, + 1331, 1332, 1325, 1332, 1324, 1325, 1325, 1325, 1326, 1325, 1326, 1326, + 1326, 1326, 1327, 1326, 1327, 1327, 1327, 1327, 1329, 1327, 1329, 1329, + 1329, 1329, 1331, 1329, 1331, 1331, 1331, 1331, 1325, 1331, 1325, 1325, + 1333, 1334, 1335, 1334, 1336, 1335, 1335, 1336, 1337, 1336, 1338, 1337, + 1337, 1338, 1339, 1338, 1306, 1339, 1339, 1306, 1340, 1306, 1304, 1340, + 1340, 1304, 1341, 1304, 1342, 1341, 1341, 1342, 1333, 1342, 1334, 1333, + 1333, 1333, 1335, 1333, 1335, 1335, 1335, 1335, 1337, 1335, 1337, 1337, + 1337, 1337, 1339, 1337, 1339, 1339, 1339, 1339, 1340, 1339, 1340, 1340, + 1340, 1340, 1341, 1340, 1341, 1341, 1341, 1341, 1333, 1341, 1333, 1333, + 1331, 1332, 1329, 1332, 1330, 1329, 1329, 1330, 1327, 1330, 1328, 1327, + 1327, 1328, 1343, 1328, 1344, 1343, 1343, 1344, 1345, 1344, 1346, 1345, + 1345, 1346, 1347, 1346, 1348, 1347, 1347, 1348, 1349, 1348, 1350, 1349, + 1349, 1350, 1351, 1350, 1352, 1351, 1351, 1352, 1331, 1352, 1332, 1331, + 1331, 1331, 1329, 1331, 1329, 1329, 1329, 1329, 1327, 1329, 1327, 1327, + 1327, 1327, 1343, 1327, 1343, 1343, 1343, 1343, 1345, 1343, 1345, 1345, + 1345, 1345, 1347, 1345, 1347, 1347, 1347, 1347, 1349, 1347, 1349, 1349, + 1349, 1349, 1351, 1349, 1351, 1351, 1351, 1351, 1331, 1351, 1331, 1331, + 1531, 1532, 1533, 1532, 1534, 1533, 1533, 1534, 1535, 1534, 1536, 1535, + 1535, 1536, 1537, 1536, 1538, 1537, 1537, 1538, 1539, 1538, 1540, 1539, + 1539, 1540, 1541, 1540, 1542, 1541, 1541, 1542, 1543, 1542, 1544, 1543, + 1543, 1544, 1545, 1544, 1546, 1545, 1545, 1546, 1547, 1546, 1548, 1547, + 1547, 1548, 1549, 1548, 1550, 1549, 1549, 1550, 1531, 1550, 1532, 1531, + 1531, 1531, 1533, 1531, 1533, 1533, 1533, 1533, 1535, 1533, 1535, 1535, + 1535, 1535, 1537, 1535, 1537, 1537, 1537, 1537, 1539, 1537, 1539, 1539, + 1539, 1539, 1541, 1539, 1541, 1541, 1541, 1541, 1543, 1541, 1543, 1543, + 1543, 1543, 1545, 1543, 1545, 1545, 1545, 1545, 1547, 1545, 1547, 1547, + 1547, 1547, 1549, 1547, 1549, 1549, 1549, 1549, 1531, 1549, 1531, 1531, + 1551, 1552, 1553, 1552, 1554, 1553, 1553, 1554, 1555, 1554, 1556, 1555, + 1555, 1556, 1557, 1556, 1558, 1557, 1557, 1558, 1559, 1558, 1560, 1559, + 1559, 1560, 1551, 1560, 1552, 1551, 1551, 1551, 1553, 1551, 1553, 1553, + 1553, 1553, 1555, 1553, 1555, 1555, 1555, 1555, 1557, 1555, 1557, 1557, + 1557, 1557, 1559, 1557, 1559, 1559, 1559, 1559, 1551, 1559, 1551, 1551, + 1561, 1540, 1562, 1540, 1563, 1562, 1562, 1563, 1564, 1563, 1565, 1564, + 1564, 1565, 1566, 1565, 1567, 1566, 1566, 1567, 1568, 1567, 1569, 1568, + 1568, 1569, 1570, 1569, 1571, 1570, 1570, 1571, 1572, 1571, 1542, 1572, + 1572, 1542, 1561, 1542, 1540, 1561, 1561, 1561, 1562, 1561, 1562, 1562, + 1562, 1562, 1564, 1562, 1564, 1564, 1564, 1564, 1566, 1564, 1566, 1566, + 1566, 1566, 1568, 1566, 1568, 1568, 1568, 1568, 1570, 1568, 1570, 1570, + 1570, 1570, 1572, 1570, 1572, 1572, 1572, 1572, 1561, 1572, 1561, 1561, + 1553, 1554, 1551, 1554, 1552, 1551, 1551, 1552, 1573, 1552, 1574, 1573, + 1573, 1574, 1575, 1574, 1576, 1575, 1575, 1576, 1577, 1576, 1578, 1577, + 1577, 1578, 1568, 1578, 1569, 1568, 1568, 1569, 1566, 1569, 1567, 1566, + 1566, 1567, 1579, 1567, 1580, 1579, 1579, 1580, 1581, 1580, 1582, 1581, + 1581, 1582, 1553, 1582, 1554, 1553, 1553, 1553, 1551, 1553, 1551, 1551, + 1551, 1551, 1573, 1551, 1573, 1573, 1573, 1573, 1575, 1573, 1575, 1575, + 1575, 1575, 1577, 1575, 1577, 1577, 1577, 1577, 1568, 1577, 1568, 1568, + 1568, 1568, 1566, 1568, 1566, 1566, 1566, 1566, 1579, 1566, 1579, 1579, + 1579, 1579, 1581, 1579, 1581, 1581, 1581, 1581, 1553, 1581, 1553, 1553, + 1583, 1584, 1585, 1584, 1586, 1585, 1585, 1586, 1587, 1586, 1588, 1587, + 1587, 1588, 1589, 1588, 1590, 1589, 1589, 1590, 1591, 1590, 1592, 1591, + 1591, 1592, 1593, 1592, 1594, 1593, 1593, 1594, 1595, 1594, 1596, 1595, + 1595, 1596, 1597, 1596, 1598, 1597, 1597, 1598, 1583, 1598, 1584, 1583, + 1583, 1583, 1585, 1583, 1585, 1585, 1585, 1585, 1587, 1585, 1587, 1587, + 1587, 1587, 1589, 1587, 1589, 1589, 1589, 1589, 1591, 1589, 1591, 1591, + 1591, 1591, 1593, 1591, 1593, 1593, 1593, 1593, 1595, 1593, 1595, 1595, + 1595, 1595, 1597, 1595, 1597, 1597, 1597, 1597, 1583, 1597, 1583, 1583, + 1559, 1560, 1583, 1560, 1584, 1583, 1583, 1584, 1597, 1584, 1598, 1597, + 1597, 1598, 1595, 1598, 1596, 1595, 1595, 1596, 1593, 1596, 1594, 1593, + 1593, 1594, 1599, 1594, 1600, 1599, 1599, 1600, 1575, 1600, 1576, 1575, + 1575, 1576, 1573, 1576, 1574, 1573, 1573, 1574, 1551, 1574, 1552, 1551, + 1551, 1552, 1559, 1552, 1560, 1559, 1559, 1559, 1583, 1559, 1583, 1583, + 1583, 1583, 1597, 1583, 1597, 1597, 1597, 1597, 1595, 1597, 1595, 1595, + 1595, 1595, 1593, 1595, 1593, 1593, 1593, 1593, 1599, 1593, 1599, 1599, + 1599, 1599, 1575, 1599, 1575, 1575, 1575, 1575, 1573, 1575, 1573, 1573, + 1573, 1573, 1551, 1573, 1551, 1551, 1551, 1551, 1559, 1551, 1559, 1559, + 1601, 1602, 1603, 1602, 1604, 1603, 1603, 1604, 1605, 1604, 1606, 1605, + 1605, 1606, 1607, 1606, 1608, 1607, 1607, 1608, 1609, 1608, 1610, 1609, + 1609, 1610, 1611, 1610, 1538, 1611, 1611, 1538, 1612, 1538, 1536, 1612, + 1612, 1536, 1613, 1536, 1534, 1613, 1613, 1534, 1614, 1534, 1615, 1614, + 1614, 1615, 1616, 1615, 1617, 1616, 1616, 1617, 1618, 1617, 1619, 1618, + 1618, 1619, 1620, 1619, 1621, 1620, 1620, 1621, 1622, 1621, 1623, 1622, + 1622, 1623, 1624, 1623, 1625, 1624, 1624, 1625, 1626, 1625, 1627, 1626, + 1626, 1627, 1628, 1627, 1629, 1628, 1628, 1629, 1601, 1629, 1602, 1601, + 1601, 1601, 1603, 1601, 1603, 1603, 1603, 1603, 1605, 1603, 1605, 1605, + 1605, 1605, 1607, 1605, 1607, 1607, 1607, 1607, 1609, 1607, 1609, 1609, + 1609, 1609, 1611, 1609, 1611, 1611, 1611, 1611, 1612, 1611, 1612, 1612, + 1612, 1612, 1613, 1612, 1613, 1613, 1613, 1613, 1614, 1613, 1614, 1614, + 1614, 1614, 1616, 1614, 1616, 1616, 1616, 1616, 1618, 1616, 1618, 1618, + 1618, 1618, 1620, 1618, 1620, 1620, 1620, 1620, 1622, 1620, 1622, 1622, + 1622, 1622, 1624, 1622, 1624, 1624, 1624, 1624, 1626, 1624, 1626, 1626, + 1626, 1626, 1628, 1626, 1628, 1628, 1628, 1628, 1601, 1628, 1601, 1601, + 1630, 1631, 1632, 1631, 1633, 1632, 1632, 1633, 1634, 1633, 1635, 1634, + 1634, 1635, 1636, 1635, 1627, 1636, 1636, 1627, 1637, 1627, 1625, 1637, + 1637, 1625, 1638, 1625, 1623, 1638, 1638, 1623, 1639, 1623, 1621, 1639, + 1639, 1621, 1640, 1621, 1619, 1640, 1640, 1619, 1630, 1619, 1631, 1630, + 1630, 1630, 1632, 1630, 1632, 1632, 1632, 1632, 1634, 1632, 1634, 1634, + 1634, 1634, 1636, 1634, 1636, 1636, 1636, 1636, 1637, 1636, 1637, 1637, + 1637, 1637, 1638, 1637, 1638, 1638, 1638, 1638, 1639, 1638, 1639, 1639, + 1639, 1639, 1640, 1639, 1640, 1640, 1640, 1640, 1630, 1640, 1630, 1630, + 1641, 1642, 1643, 1642, 1644, 1643, 1643, 1644, 1645, 1644, 1646, 1645, + 1645, 1646, 1647, 1646, 1648, 1647, 1647, 1648, 1649, 1648, 1650, 1649, + 1649, 1650, 1651, 1650, 1652, 1651, 1651, 1652, 1653, 1652, 1654, 1653, + 1653, 1654, 1655, 1654, 1656, 1655, 1655, 1656, 1657, 1656, 1658, 1657, + 1657, 1658, 1659, 1658, 1660, 1659, 1659, 1660, 1641, 1660, 1642, 1641, + 1641, 1641, 1643, 1641, 1643, 1643, 1643, 1643, 1645, 1643, 1645, 1645, + 1645, 1645, 1647, 1645, 1647, 1647, 1647, 1647, 1649, 1647, 1649, 1649, + 1649, 1649, 1651, 1649, 1651, 1651, 1651, 1651, 1653, 1651, 1653, 1653, + 1653, 1653, 1655, 1653, 1655, 1655, 1655, 1655, 1657, 1655, 1657, 1657, + 1657, 1657, 1659, 1657, 1659, 1659, 1659, 1659, 1641, 1659, 1641, 1641, + 1653, 1654, 1661, 1654, 1662, 1661, 1661, 1662, 221, 1662, 222, 221, + 221, 222, 219, 222, 220, 219, 219, 220, 1663, 220, 1664, 1663, + 1663, 1664, 1665, 1664, 1666, 1665, 1665, 1666, 211, 1666, 212, 211, + 211, 212, 209, 212, 210, 209, 209, 210, 1667, 210, 1668, 1667, + 1667, 1668, 1655, 1668, 1656, 1655, 1655, 1656, 1653, 1656, 1654, 1653, + 1653, 1653, 1661, 1653, 1661, 1661, 1661, 1661, 221, 1661, 221, 221, + 221, 221, 219, 221, 219, 219, 219, 219, 1663, 219, 1663, 1663, + 1663, 1663, 1665, 1663, 1665, 1665, 1665, 1665, 211, 1665, 211, 211, + 211, 211, 209, 211, 209, 209, 209, 209, 1667, 209, 1667, 1667, + 1667, 1667, 1655, 1667, 1655, 1655, 1655, 1655, 1653, 1655, 1653, 1653, + 1641, 1642, 1659, 1642, 1660, 1659, 1659, 1660, 1669, 1660, 1670, 1669, + 1669, 1670, 1671, 1670, 1672, 1671, 1671, 1672, 1673, 1672, 1674, 1673, + 1673, 1674, 1675, 1674, 1676, 1675, 1675, 1676, 1649, 1676, 1650, 1649, + 1649, 1650, 1647, 1650, 1648, 1647, 1647, 1648, 1677, 1648, 1678, 1677, + 1677, 1678, 1679, 1678, 1680, 1679, 1679, 1680, 1641, 1680, 1642, 1641, + 1641, 1641, 1659, 1641, 1659, 1659, 1659, 1659, 1669, 1659, 1669, 1669, + 1669, 1669, 1671, 1669, 1671, 1671, 1671, 1671, 1673, 1671, 1673, 1673, + 1673, 1673, 1675, 1673, 1675, 1675, 1675, 1675, 1649, 1675, 1649, 1649, + 1649, 1649, 1647, 1649, 1647, 1647, 1647, 1647, 1677, 1647, 1677, 1677, + 1677, 1677, 1679, 1677, 1679, 1679, 1679, 1679, 1641, 1679, 1641, 1641, + 1673, 1674, 1671, 1674, 1672, 1671, 1671, 1672, 1681, 1672, 1682, 1681, + 1681, 1682, 1683, 1682, 1684, 1683, 1683, 1684, 1685, 1684, 1686, 1685, + 1685, 1686, 1687, 1686, 1688, 1687, 1687, 1688, 1689, 1688, 1690, 1689, + 1689, 1690, 1691, 1690, 1692, 1691, 1691, 1692, 1693, 1692, 1694, 1693, + 1693, 1694, 1695, 1694, 1696, 1695, 1695, 1696, 1673, 1696, 1674, 1673, + 1673, 1673, 1671, 1673, 1671, 1671, 1671, 1671, 1681, 1671, 1681, 1681, + 1681, 1681, 1683, 1681, 1683, 1683, 1683, 1683, 1685, 1683, 1685, 1685, + 1685, 1685, 1687, 1685, 1687, 1687, 1687, 1687, 1689, 1687, 1689, 1689, + 1689, 1689, 1691, 1689, 1691, 1691, 1691, 1691, 1693, 1691, 1693, 1693, + 1693, 1693, 1695, 1693, 1695, 1695, 1695, 1695, 1673, 1695, 1673, 1673, + 1697, 1698, 1699, 1698, 1700, 1699, 1699, 1700, 1701, 1700, 1702, 1701, + 1701, 1702, 1703, 1702, 1704, 1703, 1703, 1704, 1705, 1704, 1706, 1705, + 1705, 1706, 1707, 1706, 1708, 1707, 1707, 1708, 1709, 1708, 1710, 1709, + 1709, 1710, 1711, 1710, 1712, 1711, 1711, 1712, 1713, 1712, 1714, 1713, + 1713, 1714, 1715, 1714, 1716, 1715, 1715, 1716, 1717, 1716, 1718, 1717, + 1717, 1718, 1719, 1718, 1720, 1719, 1719, 1720, 1721, 1720, 1722, 1721, + 1721, 1722, 1723, 1722, 1724, 1723, 1723, 1724, 1725, 1724, 1726, 1725, + 1725, 1726, 1727, 1726, 1728, 1727, 1727, 1728, 1729, 1728, 1730, 1729, + 1729, 1730, 1697, 1730, 1698, 1697, 1697, 1697, 1699, 1697, 1699, 1699, + 1699, 1699, 1701, 1699, 1701, 1701, 1701, 1701, 1703, 1701, 1703, 1703, + 1703, 1703, 1705, 1703, 1705, 1705, 1705, 1705, 1707, 1705, 1707, 1707, + 1707, 1707, 1709, 1707, 1709, 1709, 1709, 1709, 1711, 1709, 1711, 1711, + 1711, 1711, 1713, 1711, 1713, 1713, 1713, 1713, 1715, 1713, 1715, 1715, + 1715, 1715, 1717, 1715, 1717, 1717, 1717, 1717, 1719, 1717, 1719, 1719, + 1719, 1719, 1721, 1719, 1721, 1721, 1721, 1721, 1723, 1721, 1723, 1723, + 1723, 1723, 1725, 1723, 1725, 1725, 1725, 1725, 1727, 1725, 1727, 1727, + 1727, 1727, 1729, 1727, 1729, 1729, 1729, 1729, 1697, 1729, 1697, 1697, + 1731, 1724, 1732, 1724, 1722, 1732, 1732, 1722, 1733, 1722, 1720, 1733, + 1733, 1720, 1734, 1720, 1718, 1734, 1734, 1718, 1731, 1718, 1724, 1731, + 1731, 1731, 1732, 1731, 1732, 1732, 1732, 1732, 1733, 1732, 1733, 1733, + 1733, 1733, 1734, 1733, 1734, 1734, 1734, 1734, 1731, 1734, 1731, 1731, + 1735, 1714, 1736, 1714, 1712, 1736, 1736, 1712, 1737, 1712, 1710, 1737, + 1737, 1710, 1738, 1710, 1708, 1738, 1738, 1708, 1735, 1708, 1714, 1735, + 1735, 1735, 1736, 1735, 1736, 1736, 1736, 1736, 1737, 1736, 1737, 1737, + 1737, 1737, 1738, 1737, 1738, 1738, 1738, 1738, 1735, 1738, 1735, 1735, + 1739, 1706, 1740, 1706, 1704, 1740, 1740, 1704, 1741, 1704, 1702, 1741, + 1741, 1702, 1742, 1702, 1700, 1742, 1742, 1700, 1743, 1700, 1744, 1743, + 1743, 1744, 1745, 1744, 1746, 1745, 1745, 1746, 1739, 1746, 1706, 1739, + 1739, 1739, 1740, 1739, 1740, 1740, 1740, 1740, 1741, 1740, 1741, 1741, + 1741, 1741, 1742, 1741, 1742, 1742, 1742, 1742, 1743, 1742, 1743, 1743, + 1743, 1743, 1745, 1743, 1745, 1745, 1745, 1745, 1739, 1745, 1739, 1739, + 1747, 1748, 1749, 1748, 1750, 1749, 1749, 1750, 1751, 1750, 1752, 1751, + 1751, 1752, 1753, 1752, 1754, 1753, 1753, 1754, 1755, 1754, 1756, 1755, + 1755, 1756, 1757, 1756, 1758, 1757, 1757, 1758, 1759, 1758, 1760, 1759, + 1759, 1760, 1761, 1760, 1762, 1761, 1761, 1762, 1763, 1762, 1764, 1763, + 1763, 1764, 1765, 1764, 1766, 1765, 1765, 1766, 1693, 1766, 1694, 1693, + 1693, 1694, 1691, 1694, 1692, 1691, 1691, 1692, 1685, 1692, 1686, 1685, + 1685, 1686, 1683, 1686, 1684, 1683, 1683, 1684, 1767, 1684, 1768, 1767, + 1767, 1768, 1769, 1768, 1770, 1769, 1769, 1770, 1747, 1770, 1748, 1747, + 1747, 1747, 1749, 1747, 1749, 1749, 1749, 1749, 1751, 1749, 1751, 1751, + 1751, 1751, 1753, 1751, 1753, 1753, 1753, 1753, 1755, 1753, 1755, 1755, + 1755, 1755, 1757, 1755, 1757, 1757, 1757, 1757, 1759, 1757, 1759, 1759, + 1759, 1759, 1761, 1759, 1761, 1761, 1761, 1761, 1763, 1761, 1763, 1763, + 1763, 1763, 1765, 1763, 1765, 1765, 1765, 1765, 1693, 1765, 1693, 1693, + 1693, 1693, 1691, 1693, 1691, 1691, 1691, 1691, 1685, 1691, 1685, 1685, + 1685, 1685, 1683, 1685, 1683, 1683, 1683, 1683, 1767, 1683, 1767, 1767, + 1767, 1767, 1769, 1767, 1769, 1769, 1769, 1769, 1747, 1769, 1747, 1747, + 1753, 1754, 1771, 1754, 1772, 1771, 1771, 1772, 1773, 1772, 1774, 1773, + 1773, 1774, 1775, 1774, 1776, 1775, 1775, 1776, 1747, 1776, 1748, 1747, + 1747, 1748, 1769, 1748, 1770, 1769, 1769, 1770, 1777, 1770, 1778, 1777, + 1777, 1778, 1779, 1778, 1780, 1779, 1779, 1780, 1781, 1780, 1782, 1781, + 1781, 1782, 1783, 1782, 1784, 1783, 1783, 1784, 1785, 1784, 1786, 1785, + 1785, 1786, 1787, 1786, 1788, 1787, 1787, 1788, 1763, 1788, 1764, 1763, + 1763, 1764, 1761, 1764, 1762, 1761, 1761, 1762, 1789, 1762, 1790, 1789, + 1789, 1790, 1791, 1790, 1792, 1791, 1791, 1792, 1793, 1792, 1794, 1793, + 1793, 1794, 1755, 1794, 1756, 1755, 1755, 1756, 1753, 1756, 1754, 1753, + 1753, 1753, 1771, 1753, 1771, 1771, 1771, 1771, 1773, 1771, 1773, 1773, + 1773, 1773, 1775, 1773, 1775, 1775, 1775, 1775, 1747, 1775, 1747, 1747, + 1747, 1747, 1769, 1747, 1769, 1769, 1769, 1769, 1777, 1769, 1777, 1777, + 1777, 1777, 1779, 1777, 1779, 1779, 1779, 1779, 1781, 1779, 1781, 1781, + 1781, 1781, 1783, 1781, 1783, 1783, 1783, 1783, 1785, 1783, 1785, 1785, + 1785, 1785, 1787, 1785, 1787, 1787, 1787, 1787, 1763, 1787, 1763, 1763, + 1763, 1763, 1761, 1763, 1761, 1761, 1761, 1761, 1789, 1761, 1789, 1789, + 1789, 1789, 1791, 1789, 1791, 1791, 1791, 1791, 1793, 1791, 1793, 1793, + 1793, 1793, 1755, 1793, 1755, 1755, 1755, 1755, 1753, 1755, 1753, 1753, + 1795, 1796, 1797, 1796, 1798, 1797, 1797, 1798, 1799, 1798, 1800, 1799, + 1799, 1800, 1801, 1800, 1802, 1801, 1801, 1802, 1795, 1802, 1796, 1795, + 1795, 1795, 1797, 1795, 1797, 1797, 1797, 1797, 1799, 1797, 1799, 1799, + 1799, 1799, 1801, 1799, 1801, 1801, 1801, 1801, 1795, 1801, 1795, 1795, + 1803, 1804, 1805, 1804, 1806, 1805, 1805, 1806, 1807, 1806, 1808, 1807, + 1807, 1808, 1809, 1808, 1810, 1809, 1809, 1810, 1811, 1810, 1812, 1811, + 1811, 1812, 1803, 1812, 1804, 1803, 1803, 1803, 1805, 1803, 1805, 1805, + 1805, 1805, 1807, 1805, 1807, 1807, 1807, 1807, 1809, 1807, 1809, 1809, + 1809, 1809, 1811, 1809, 1811, 1811, 1811, 1811, 1803, 1811, 1803, 1803, + 1813, 1814, 1815, 1814, 1816, 1815, 1815, 1816, 1817, 1816, 1818, 1817, + 1817, 1818, 1819, 1818, 1810, 1819, 1819, 1810, 1820, 1810, 1808, 1820, + 1820, 1808, 1813, 1808, 1814, 1813, 1813, 1813, 1815, 1813, 1815, 1815, + 1815, 1815, 1817, 1815, 1817, 1817, 1817, 1817, 1819, 1817, 1819, 1819, + 1819, 1819, 1820, 1819, 1820, 1820, 1820, 1820, 1813, 1820, 1813, 1813, + 1815, 1816, 1813, 1816, 1814, 1813, 1813, 1814, 1797, 1814, 1798, 1797, + 1797, 1798, 1795, 1798, 1796, 1795, 1795, 1796, 1821, 1796, 1822, 1821, + 1821, 1822, 1815, 1822, 1816, 1815, 1815, 1815, 1813, 1815, 1813, 1813, + 1813, 1813, 1797, 1813, 1797, 1797, 1797, 1797, 1795, 1797, 1795, 1795, + 1795, 1795, 1821, 1795, 1821, 1821, 1821, 1821, 1815, 1821, 1815, 1815, + 225, 226, 1823, 226, 1824, 1823, 1823, 1824, 1825, 1824, 1826, 1825, + 1825, 1826, 1827, 1826, 1828, 1827, 1827, 1828, 1829, 1828, 1830, 1829, + 1829, 1830, 1831, 1830, 1832, 1831, 1831, 1832, 227, 1832, 228, 227, + 227, 228, 225, 228, 226, 225, 225, 225, 1823, 225, 1823, 1823, + 1823, 1823, 1825, 1823, 1825, 1825, 1825, 1825, 1827, 1825, 1827, 1827, + 1827, 1827, 1829, 1827, 1829, 1829, 1829, 1829, 1831, 1829, 1831, 1831, + 1831, 1831, 227, 1831, 227, 227, 227, 227, 225, 227, 225, 225, + 1803, 1804, 1833, 1804, 1834, 1833, 1833, 1834, 1835, 1834, 1836, 1835, + 1835, 1836, 1837, 1836, 1744, 1837, 1837, 1744, 1699, 1744, 1700, 1699, + 1699, 1700, 1697, 1700, 1698, 1697, 1697, 1698, 1838, 1698, 1839, 1838, + 1838, 1839, 1805, 1839, 1806, 1805, 1805, 1806, 1803, 1806, 1804, 1803, + 1803, 1803, 1833, 1803, 1833, 1833, 1833, 1833, 1835, 1833, 1835, 1835, + 1835, 1835, 1837, 1835, 1837, 1837, 1837, 1837, 1699, 1837, 1699, 1699, + 1699, 1699, 1697, 1699, 1697, 1697, 1697, 1697, 1838, 1697, 1838, 1838, + 1838, 1838, 1805, 1838, 1805, 1805, 1805, 1805, 1803, 1805, 1803, 1803, + 1840, 1841, 1842, 1841, 1843, 1842, 1842, 1843, 1844, 1843, 1845, 1844, + 1844, 1845, 1846, 1845, 1847, 1846, 1846, 1847, 1848, 1847, 1849, 1848, + 1848, 1849, 1850, 1849, 1851, 1850, 1850, 1851, 1852, 1851, 1853, 1852, + 1852, 1853, 1854, 1853, 1855, 1854, 1854, 1855, 1856, 1855, 1857, 1856, + 1856, 1857, 1858, 1857, 1859, 1858, 1858, 1859, 1860, 1859, 1861, 1860, + 1860, 1861, 1862, 1861, 1863, 1862, 1862, 1863, 1840, 1863, 1841, 1840, + 1840, 1840, 1842, 1840, 1842, 1842, 1842, 1842, 1844, 1842, 1844, 1844, + 1844, 1844, 1846, 1844, 1846, 1846, 1846, 1846, 1848, 1846, 1848, 1848, + 1848, 1848, 1850, 1848, 1850, 1850, 1850, 1850, 1852, 1850, 1852, 1852, + 1852, 1852, 1854, 1852, 1854, 1854, 1854, 1854, 1856, 1854, 1856, 1856, + 1856, 1856, 1858, 1856, 1858, 1858, 1858, 1858, 1860, 1858, 1860, 1860, + 1860, 1860, 1862, 1860, 1862, 1862, 1862, 1862, 1840, 1862, 1840, 1840, + 1864, 1865, 1866, 1865, 1867, 1866, 1866, 1867, 1868, 1867, 1869, 1868, + 1868, 1869, 1870, 1869, 1871, 1870, 1870, 1871, 1864, 1871, 1865, 1864, + 1864, 1864, 1866, 1864, 1866, 1866, 1866, 1866, 1868, 1866, 1868, 1868, + 1868, 1868, 1870, 1868, 1870, 1870, 1870, 1870, 1864, 1870, 1864, 1864, + 1872, 1873, 1874, 1873, 1875, 1874, 1874, 1875, 1876, 1875, 1877, 1876, + 1876, 1877, 1878, 1877, 1879, 1878, 1878, 1879, 1872, 1879, 1873, 1872, + 1872, 1872, 1874, 1872, 1874, 1874, 1874, 1874, 1876, 1874, 1876, 1876, + 1876, 1876, 1878, 1876, 1878, 1878, 1878, 1878, 1872, 1878, 1872, 1872, + 1880, 1881, 1882, 1881, 1883, 1882, 1882, 1883, 1884, 1883, 1885, 1884, + 1884, 1885, 1886, 1885, 348, 1886, 1886, 348, 1887, 348, 346, 1887, + 1887, 346, 1880, 346, 1881, 1880, 1880, 1880, 1882, 1880, 1882, 1882, + 1882, 1882, 1884, 1882, 1884, 1884, 1884, 1884, 1886, 1884, 1886, 1886, + 1886, 1886, 1887, 1886, 1887, 1887, 1887, 1887, 1880, 1887, 1880, 1880, + 1864, 1865, 1876, 1865, 1877, 1876, 1876, 1877, 1874, 1877, 1875, 1874, + 1874, 1875, 1888, 1875, 1889, 1888, 1888, 1889, 1866, 1889, 1867, 1866, + 1866, 1867, 1864, 1867, 1865, 1864, 1864, 1864, 1876, 1864, 1876, 1876, + 1876, 1876, 1874, 1876, 1874, 1874, 1874, 1874, 1888, 1874, 1888, 1888, + 1888, 1888, 1866, 1888, 1866, 1866, 1866, 1866, 1864, 1866, 1864, 1864, + 1848, 1849, 1890, 1849, 1891, 1890, 1890, 1891, 1892, 1891, 1893, 1892, + 1892, 1893, 267, 1893, 268, 267, 267, 268, 265, 268, 266, 265, + 265, 266, 1852, 266, 1853, 1852, 1852, 1853, 1850, 1853, 1851, 1850, + 1850, 1851, 1848, 1851, 1849, 1848, 1848, 1848, 1890, 1848, 1890, 1890, + 1890, 1890, 1892, 1890, 1892, 1892, 1892, 1892, 267, 1892, 267, 267, + 267, 267, 265, 267, 265, 265, 265, 265, 1852, 265, 1852, 1852, + 1852, 1852, 1850, 1852, 1850, 1850, 1850, 1850, 1848, 1850, 1848, 1848, + 1880, 1881, 1872, 1881, 1873, 1872, 1872, 1873, 1878, 1873, 1879, 1878, + 1878, 1879, 1894, 1879, 1895, 1894, 1894, 1895, 1896, 1895, 1897, 1896, + 1896, 1897, 1842, 1897, 1843, 1842, 1842, 1843, 1840, 1843, 1841, 1840, + 1840, 1841, 1898, 1841, 1899, 1898, 1898, 1899, 1882, 1899, 1883, 1882, + 1882, 1883, 1880, 1883, 1881, 1880, 1880, 1880, 1872, 1880, 1872, 1872, + 1872, 1872, 1878, 1872, 1878, 1878, 1878, 1878, 1894, 1878, 1894, 1894, + 1894, 1894, 1896, 1894, 1896, 1896, 1896, 1896, 1842, 1896, 1842, 1842, + 1842, 1842, 1840, 1842, 1840, 1840, 1840, 1840, 1898, 1840, 1898, 1898, + 1898, 1898, 1882, 1898, 1882, 1882, 1882, 1882, 1880, 1882, 1880, 1880, + 1900, 1901, 1902, 1901, 1903, 1902, 1902, 1903, 1904, 1903, 1905, 1904, + 1904, 1905, 1906, 1905, 1907, 1906, 1906, 1907, 1908, 1907, 1909, 1908, + 1908, 1909, 1910, 1909, 1911, 1910, 1910, 1911, 1900, 1911, 1901, 1900, + 1900, 1900, 1902, 1900, 1902, 1902, 1902, 1902, 1904, 1902, 1904, 1904, + 1904, 1904, 1906, 1904, 1906, 1906, 1906, 1906, 1908, 1906, 1908, 1908, + 1908, 1908, 1910, 1908, 1910, 1910, 1910, 1910, 1900, 1910, 1900, 1900, + 1912, 1913, 1914, 1913, 1915, 1914, 1914, 1915, 1904, 1915, 1905, 1904, + 1904, 1905, 1902, 1905, 1903, 1902, 1902, 1903, 1900, 1903, 1901, 1900, + 1900, 1901, 1916, 1901, 1917, 1916, 1916, 1917, 1912, 1917, 1913, 1912, + 1912, 1912, 1914, 1912, 1914, 1914, 1914, 1914, 1904, 1914, 1904, 1904, + 1904, 1904, 1902, 1904, 1902, 1902, 1902, 1902, 1900, 1902, 1900, 1900, + 1900, 1900, 1916, 1900, 1916, 1916, 1916, 1916, 1912, 1916, 1912, 1912, + 1918, 1919, 1920, 1919, 1921, 1920, 1920, 1921, 1922, 1921, 1923, 1922, + 1922, 1923, 1914, 1923, 1915, 1914, 1914, 1915, 1912, 1915, 1913, 1912, + 1912, 1913, 1916, 1913, 1917, 1916, 1916, 1917, 1924, 1917, 1925, 1924, + 1924, 1925, 1926, 1925, 1927, 1926, 1926, 1927, 1918, 1927, 1919, 1918, + 1918, 1918, 1920, 1918, 1920, 1920, 1920, 1920, 1922, 1920, 1922, 1922, + 1922, 1922, 1914, 1922, 1914, 1914, 1914, 1914, 1912, 1914, 1912, 1912, + 1912, 1912, 1916, 1912, 1916, 1916, 1916, 1916, 1924, 1916, 1924, 1924, + 1924, 1924, 1926, 1924, 1926, 1926, 1926, 1926, 1918, 1926, 1918, 1918, + 1920, 1921, 1918, 1921, 1919, 1918, 1918, 1919, 1926, 1919, 1927, 1926, + 1926, 1927, 1924, 1927, 1925, 1924, 1924, 1925, 1928, 1925, 1929, 1928, + 1928, 1929, 1930, 1929, 1931, 1930, 1930, 1931, 1932, 1931, 1933, 1932, + 1932, 1933, 1934, 1933, 1935, 1934, 1934, 1935, 1936, 1935, 1937, 1936, + 1936, 1937, 1938, 1937, 1939, 1938, 1938, 1939, 1920, 1939, 1921, 1920, + 1920, 1920, 1918, 1920, 1918, 1918, 1918, 1918, 1926, 1918, 1926, 1926, + 1926, 1926, 1924, 1926, 1924, 1924, 1924, 1924, 1928, 1924, 1928, 1928, + 1928, 1928, 1930, 1928, 1930, 1930, 1930, 1930, 1932, 1930, 1932, 1932, + 1932, 1932, 1934, 1932, 1934, 1934, 1934, 1934, 1936, 1934, 1936, 1936, + 1936, 1936, 1938, 1936, 1938, 1938, 1938, 1938, 1920, 1938, 1920, 1920, + 1940, 1941, 1942, 1941, 1943, 1942, 1942, 1943, 1944, 1943, 1945, 1944, + 1944, 1945, 1946, 1945, 1947, 1946, 1946, 1947, 1948, 1947, 1949, 1948, + 1948, 1949, 1950, 1949, 1951, 1950, 1950, 1951, 1940, 1951, 1941, 1940, + 1940, 1940, 1942, 1940, 1942, 1942, 1942, 1942, 1944, 1942, 1944, 1944, + 1944, 1944, 1946, 1944, 1946, 1946, 1946, 1946, 1948, 1946, 1948, 1948, + 1948, 1948, 1950, 1948, 1950, 1950, 1950, 1950, 1940, 1950, 1940, 1940, + 1948, 1949, 1946, 1949, 1947, 1946, 1946, 1947, 1944, 1947, 1945, 1944, + 1944, 1945, 1952, 1945, 1953, 1952, 1952, 1953, 1954, 1953, 1955, 1954, + 1954, 1955, 1956, 1955, 1957, 1956, 1956, 1957, 1958, 1957, 1959, 1958, + 1958, 1959, 1960, 1959, 1961, 1960, 1960, 1961, 1934, 1961, 1935, 1934, + 1934, 1935, 1932, 1935, 1933, 1932, 1932, 1933, 1930, 1933, 1931, 1930, + 1930, 1931, 1928, 1931, 1929, 1928, 1928, 1929, 1948, 1929, 1949, 1948, + 1948, 1948, 1946, 1948, 1946, 1946, 1946, 1946, 1944, 1946, 1944, 1944, + 1944, 1944, 1952, 1944, 1952, 1952, 1952, 1952, 1954, 1952, 1954, 1954, + 1954, 1954, 1956, 1954, 1956, 1956, 1956, 1956, 1958, 1956, 1958, 1958, + 1958, 1958, 1960, 1958, 1960, 1960, 1960, 1960, 1934, 1960, 1934, 1934, + 1934, 1934, 1932, 1934, 1932, 1932, 1932, 1932, 1930, 1932, 1930, 1930, + 1930, 1930, 1928, 1930, 1928, 1928, 1928, 1928, 1948, 1928, 1948, 1948, + 283, 284, 1962, 284, 308, 1962, 1962, 308, 1963, 308, 1964, 1963, + 1963, 1964, 1965, 1964, 1966, 1965, 1965, 1966, 1967, 1966, 1968, 1967, + 1967, 1968, 285, 1968, 286, 285, 285, 286, 283, 286, 284, 283, + 283, 283, 1962, 283, 1962, 1962, 1962, 1962, 1963, 1962, 1963, 1963, + 1963, 1963, 1965, 1963, 1965, 1965, 1965, 1965, 1967, 1965, 1967, 1967, + 1967, 1967, 285, 1967, 285, 285, 285, 285, 283, 285, 283, 283, + 289, 290, 1969, 290, 1970, 1969, 1969, 1970, 1971, 1970, 1972, 1971, + 1971, 1972, 1973, 1972, 1974, 1973, 1973, 1974, 1975, 1974, 1976, 1975, + 1975, 1976, 1977, 1976, 1978, 1977, 1977, 1978, 1979, 1978, 306, 1979, + 1979, 306, 281, 306, 282, 281, 281, 282, 289, 282, 290, 289, + 289, 289, 1969, 289, 1969, 1969, 1969, 1969, 1971, 1969, 1971, 1971, + 1971, 1971, 1973, 1971, 1973, 1973, 1973, 1973, 1975, 1973, 1975, 1975, + 1975, 1975, 1977, 1975, 1977, 1977, 1977, 1977, 1979, 1977, 1979, 1979, + 1979, 1979, 281, 1979, 281, 281, 281, 281, 289, 281, 289, 289, + 1533, 1534, 1531, 1534, 1532, 1531, 1531, 1532, 1632, 1532, 1633, 1632, + 1632, 1633, 1630, 1633, 1631, 1630, 1630, 1631, 1640, 1631, 1619, 1640, + 1640, 1619, 1980, 1619, 1617, 1980, 1980, 1617, 1981, 1617, 1615, 1981, + 1981, 1615, 1533, 1615, 1534, 1533, 1533, 1533, 1531, 1533, 1531, 1531, + 1531, 1531, 1632, 1531, 1632, 1632, 1632, 1632, 1630, 1632, 1630, 1630, + 1630, 1630, 1640, 1630, 1640, 1640, 1640, 1640, 1980, 1640, 1980, 1980, + 1980, 1980, 1981, 1980, 1981, 1981, 1981, 1981, 1533, 1981, 1533, 1533, + 511, 512, 509, 512, 510, 509, 509, 510, 1982, 510, 618, 1982, + 1982, 618, 1983, 618, 616, 1983, 1983, 616, 1984, 616, 1985, 1984, + 1984, 1985, 1986, 1985, 1987, 1986, 1986, 1987, 625, 1987, 626, 625, + 625, 626, 631, 626, 632, 631, 631, 632, 511, 632, 512, 511, + 511, 511, 509, 511, 509, 509, 509, 509, 1982, 509, 1982, 1982, + 1982, 1982, 1983, 1982, 1983, 1983, 1983, 1983, 1984, 1983, 1984, 1984, + 1984, 1984, 1986, 1984, 1986, 1986, 1986, 1986, 625, 1986, 625, 625, + 625, 625, 631, 625, 631, 631, 631, 631, 511, 631, 511, 511, + 491, 492, 489, 492, 490, 489, 489, 490, 1988, 490, 1989, 1988, + 1988, 1989, 1990, 1989, 1991, 1990, 1990, 1991, 1992, 1991, 1993, 1992, + 1992, 1993, 1994, 1993, 1995, 1994, 1994, 1995, 491, 1995, 492, 491, + 491, 491, 489, 491, 489, 489, 489, 489, 1988, 489, 1988, 1988, + 1988, 1988, 1990, 1988, 1990, 1990, 1990, 1990, 1992, 1990, 1992, 1992, + 1992, 1992, 1994, 1992, 1994, 1994, 1994, 1994, 491, 1994, 491, 491, + 1996, 1997, 1998, 1997, 1999, 1998, 1998, 1999, 2000, 1999, 2001, 2000, + 2000, 2001, 2002, 2001, 2003, 2002, 2002, 2003, 2004, 2003, 2005, 2004, + 2004, 2005, 2006, 2005, 2007, 2006, 2006, 2007, 2008, 2007, 2009, 2008, + 2008, 2009, 2010, 2009, 2011, 2010, 2010, 2011, 2012, 2011, 2013, 2012, + 2012, 2013, 2014, 2013, 2015, 2014, 2014, 2015, 2016, 2015, 2017, 2016, + 2016, 2017, 2018, 2017, 2019, 2018, 2018, 2019, 2020, 2019, 2021, 2020, + 2020, 2021, 1996, 2021, 1997, 1996, 1996, 1996, 1998, 1996, 1998, 1998, + 1998, 1998, 2000, 1998, 2000, 2000, 2000, 2000, 2002, 2000, 2002, 2002, + 2002, 2002, 2004, 2002, 2004, 2004, 2004, 2004, 2006, 2004, 2006, 2006, + 2006, 2006, 2008, 2006, 2008, 2008, 2008, 2008, 2010, 2008, 2010, 2010, + 2010, 2010, 2012, 2010, 2012, 2012, 2012, 2012, 2014, 2012, 2014, 2014, + 2014, 2014, 2016, 2014, 2016, 2016, 2016, 2016, 2018, 2016, 2018, 2018, + 2018, 2018, 2020, 2018, 2020, 2020, 2020, 2020, 1996, 2020, 1996, 1996, + 2022, 2023, 2024, 2023, 2025, 2024, 2024, 2025, 2026, 2025, 2027, 2026, + 2026, 2027, 2028, 2027, 2029, 2028, 2028, 2029, 2030, 2029, 2031, 2030, + 2030, 2031, 2032, 2031, 2033, 2032, 2032, 2033, 2034, 2033, 2035, 2034, + 2034, 2035, 2036, 2035, 2037, 2036, 2036, 2037, 2038, 2037, 2039, 2038, + 2038, 2039, 2040, 2039, 2041, 2040, 2040, 2041, 2042, 2041, 2043, 2042, + 2042, 2043, 2044, 2043, 2045, 2044, 2044, 2045, 2046, 2045, 2047, 2046, + 2046, 2047, 2048, 2047, 2049, 2048, 2048, 2049, 2050, 2049, 2051, 2050, + 2050, 2051, 2052, 2051, 2053, 2052, 2052, 2053, 2054, 2053, 2055, 2054, + 2054, 2055, 2056, 2055, 2057, 2056, 2056, 2057, 2058, 2057, 2059, 2058, + 2058, 2059, 2060, 2059, 2061, 2060, 2060, 2061, 2062, 2061, 2063, 2062, + 2062, 2063, 2064, 2063, 2065, 2064, 2064, 2065, 2066, 2065, 2067, 2066, + 2066, 2067, 2068, 2067, 2069, 2068, 2068, 2069, 2070, 2069, 2071, 2070, + 2070, 2071, 2072, 2071, 2073, 2072, 2072, 2073, 2074, 2073, 2075, 2074, + 2074, 2075, 2076, 2075, 2077, 2076, 2076, 2077, 2078, 2077, 2079, 2078, + 2078, 2079, 2080, 2079, 2081, 2080, 2080, 2081, 2082, 2081, 2083, 2082, + 2082, 2083, 2084, 2083, 2085, 2084, 2084, 2085, 2086, 2085, 2087, 2086, + 2086, 2087, 2088, 2087, 2089, 2088, 2088, 2089, 2090, 2089, 2091, 2090, + 2090, 2091, 2092, 2091, 2093, 2092, 2092, 2093, 2094, 2093, 2095, 2094, + 2094, 2095, 2096, 2095, 2097, 2096, 2096, 2097, 2098, 2097, 2099, 2098, + 2098, 2099, 2100, 2099, 2101, 2100, 2100, 2101, 2102, 2101, 2103, 2102, + 2102, 2103, 2104, 2103, 2105, 2104, 2104, 2105, 2106, 2105, 1999, 2106, + 2106, 1999, 2107, 1999, 1997, 2107, 2107, 1997, 2108, 1997, 2109, 2108, + 2108, 2109, 2110, 2109, 2111, 2110, 2110, 2111, 2112, 2111, 2113, 2112, + 2112, 2113, 2114, 2113, 2115, 2114, 2114, 2115, 2116, 2115, 2117, 2116, + 2116, 2117, 2022, 2117, 2023, 2022, 2022, 2022, 2024, 2022, 2024, 2024, + 2024, 2024, 2026, 2024, 2026, 2026, 2026, 2026, 2028, 2026, 2028, 2028, + 2028, 2028, 2030, 2028, 2030, 2030, 2030, 2030, 2032, 2030, 2032, 2032, + 2032, 2032, 2034, 2032, 2034, 2034, 2034, 2034, 2036, 2034, 2036, 2036, + 2036, 2036, 2038, 2036, 2038, 2038, 2038, 2038, 2040, 2038, 2040, 2040, + 2040, 2040, 2042, 2040, 2042, 2042, 2042, 2042, 2044, 2042, 2044, 2044, + 2044, 2044, 2046, 2044, 2046, 2046, 2046, 2046, 2048, 2046, 2048, 2048, + 2048, 2048, 2050, 2048, 2050, 2050, 2050, 2050, 2052, 2050, 2052, 2052, + 2052, 2052, 2054, 2052, 2054, 2054, 2054, 2054, 2056, 2054, 2056, 2056, + 2056, 2056, 2058, 2056, 2058, 2058, 2058, 2058, 2060, 2058, 2060, 2060, + 2060, 2060, 2062, 2060, 2062, 2062, 2062, 2062, 2064, 2062, 2064, 2064, + 2064, 2064, 2066, 2064, 2066, 2066, 2066, 2066, 2068, 2066, 2068, 2068, + 2068, 2068, 2070, 2068, 2070, 2070, 2070, 2070, 2072, 2070, 2072, 2072, + 2072, 2072, 2074, 2072, 2074, 2074, 2074, 2074, 2076, 2074, 2076, 2076, + 2076, 2076, 2078, 2076, 2078, 2078, 2078, 2078, 2080, 2078, 2080, 2080, + 2080, 2080, 2082, 2080, 2082, 2082, 2082, 2082, 2084, 2082, 2084, 2084, + 2084, 2084, 2086, 2084, 2086, 2086, 2086, 2086, 2088, 2086, 2088, 2088, + 2088, 2088, 2090, 2088, 2090, 2090, 2090, 2090, 2092, 2090, 2092, 2092, + 2092, 2092, 2094, 2092, 2094, 2094, 2094, 2094, 2096, 2094, 2096, 2096, + 2096, 2096, 2098, 2096, 2098, 2098, 2098, 2098, 2100, 2098, 2100, 2100, + 2100, 2100, 2102, 2100, 2102, 2102, 2102, 2102, 2104, 2102, 2104, 2104, + 2104, 2104, 2106, 2104, 2106, 2106, 2106, 2106, 2107, 2106, 2107, 2107, + 2107, 2107, 2108, 2107, 2108, 2108, 2108, 2108, 2110, 2108, 2110, 2110, + 2110, 2110, 2112, 2110, 2112, 2112, 2112, 2112, 2114, 2112, 2114, 2114, + 2114, 2114, 2116, 2114, 2116, 2116, 2116, 2116, 2022, 2116, 2022, 2022, + 2118, 2119, 2120, 2119, 2121, 2120, 2120, 2121, 311, 2121, 2122, 311, + 311, 2122, 317, 2122, 2123, 317, 317, 2123, 2118, 2123, 2119, 2118, + 2118, 2118, 2120, 2118, 2120, 2120, 2120, 2120, 311, 2120, 311, 311, + 311, 311, 317, 311, 317, 317, 317, 317, 2118, 317, 2118, 2118, + 2122, 2121, 2119, 2123, 2122, 2119, 2118, 2124, 2125, 2124, 2126, 2125, + 2125, 2126, 2127, 2126, 2128, 2127, 2127, 2128, 2120, 2128, 2129, 2120, + 2120, 2129, 2118, 2129, 2124, 2118, 2118, 2118, 2125, 2118, 2125, 2125, + 2125, 2125, 2127, 2125, 2127, 2127, 2127, 2127, 2120, 2127, 2120, 2120, + 2120, 2120, 2118, 2120, 2118, 2118, 984, 891, 982, 891, 983, 982, + 982, 983, 2130, 983, 2131, 2130, 2130, 2131, 882, 2131, 883, 882, + 882, 883, 880, 883, 881, 880, 880, 881, 878, 881, 879, 878, + 878, 879, 876, 879, 877, 876, 876, 877, 874, 877, 875, 874, + 874, 875, 2132, 875, 893, 2132, 2132, 893, 984, 893, 891, 984, + 984, 984, 982, 984, 982, 982, 982, 982, 2130, 982, 2130, 2130, + 2130, 2130, 882, 2130, 882, 882, 882, 882, 880, 882, 880, 880, + 880, 880, 878, 880, 878, 878, 878, 878, 876, 878, 876, 876, + 876, 876, 874, 876, 874, 874, 874, 874, 2132, 874, 2132, 2132, + 2132, 2132, 984, 2132, 984, 984, 2133, 2134, 2135, 2134, 524, 2135, + 2135, 524, 2136, 524, 548, 2136, 2136, 548, 2137, 548, 2138, 2137, + 2137, 2138, 517, 2138, 518, 517, 517, 518, 515, 518, 516, 515, + 515, 516, 2133, 516, 2134, 2133, 2133, 2133, 2135, 2133, 2135, 2135, + 2135, 2135, 2136, 2135, 2136, 2136, 2136, 2136, 2137, 2136, 2137, 2137, + 2137, 2137, 517, 2137, 517, 517, 517, 517, 515, 517, 515, 515, + 515, 515, 2133, 515, 2133, 2133, 543, 544, 2139, 544, 2140, 2139, + 2139, 2140, 2141, 2140, 646, 2141, 2141, 646, 2142, 646, 644, 2142, + 2142, 644, 2143, 644, 2144, 2143, 2143, 2144, 2145, 2144, 2138, 2145, + 2145, 2138, 547, 2138, 548, 547, 547, 548, 545, 548, 546, 545, + 545, 546, 543, 546, 544, 543, 543, 543, 2139, 543, 2139, 2139, + 2139, 2139, 2141, 2139, 2141, 2141, 2141, 2141, 2142, 2141, 2142, 2142, + 2142, 2142, 2143, 2142, 2143, 2143, 2143, 2143, 2145, 2143, 2145, 2145, + 2145, 2145, 547, 2145, 547, 547, 547, 547, 545, 547, 545, 545, + 545, 545, 543, 545, 543, 543, 1986, 1987, 1984, 1987, 1985, 1984, + 1984, 1985, 2146, 1985, 2147, 2146, 2146, 2147, 2148, 2147, 2144, 2148, + 2148, 2144, 643, 2144, 644, 643, 643, 644, 641, 644, 642, 641, + 641, 642, 1986, 642, 1987, 1986, 1986, 1986, 1984, 1986, 1984, 1984, + 1984, 1984, 2146, 1984, 2146, 2146, 2146, 2146, 2148, 2146, 2148, 2148, + 2148, 2148, 643, 2148, 643, 643, 643, 643, 641, 643, 641, 641, + 641, 641, 1986, 641, 1986, 1986, 2143, 2144, 2149, 2144, 2147, 2149, + 2149, 2147, 2150, 2147, 1985, 2150, 2150, 1985, 615, 1985, 616, 615, + 615, 616, 621, 616, 520, 621, 621, 520, 2151, 520, 518, 2151, + 2151, 518, 2145, 518, 2138, 2145, 2145, 2138, 2143, 2138, 2144, 2143, + 2143, 2143, 2149, 2143, 2149, 2149, 2149, 2149, 2150, 2149, 2150, 2150, + 2150, 2150, 615, 2150, 615, 615, 615, 615, 621, 615, 621, 621, + 621, 621, 2151, 621, 2151, 2151, 2151, 2151, 2145, 2151, 2145, 2145, + 2145, 2145, 2143, 2145, 2143, 2143, 2152, 538, 2153, 538, 634, 2153, + 2153, 634, 2154, 634, 2155, 2154, 2154, 2155, 2156, 2155, 650, 2156, + 2156, 650, 2157, 650, 540, 2157, 2157, 540, 2158, 540, 2159, 2158, + 2158, 2159, 2152, 2159, 538, 2152, 2160, 2152, 2161, 2152, 2153, 2161, + 2161, 2153, 2162, 2153, 2154, 2162, 2162, 2154, 2163, 2154, 2156, 2163, + 2163, 2156, 2157, 2156, 2157, 2157, 2157, 2157, 2164, 2157, 2158, 2164, + 2164, 2158, 2160, 2158, 2152, 2160, 2165, 2166, 2167, 2166, 2168, 2167, + 2167, 2168, 2169, 2168, 2170, 2169, 2169, 2170, 2171, 2170, 1602, 2171, + 2171, 1602, 2172, 1602, 1629, 2172, 2172, 1629, 2173, 1629, 2174, 2173, + 2173, 2174, 2175, 2174, 2176, 2175, 2175, 2176, 2177, 2176, 1556, 2177, + 2177, 1556, 2178, 1556, 1554, 2178, 2178, 1554, 2179, 1554, 1582, 2179, + 2179, 1582, 2165, 1582, 2166, 2165, 2165, 2165, 2167, 2165, 2167, 2167, + 2167, 2167, 2169, 2167, 2169, 2169, 2169, 2169, 2171, 2169, 2171, 2171, + 2171, 2171, 2172, 2171, 2172, 2172, 2172, 2172, 2173, 2172, 2173, 2173, + 2173, 2173, 2175, 2173, 2175, 2175, 2175, 2175, 2177, 2175, 2177, 2177, + 2177, 2177, 2178, 2177, 2178, 2178, 2178, 2178, 2179, 2178, 2179, 2179, + 2179, 2179, 2165, 2179, 2165, 2165, 1561, 1540, 2180, 1540, 1538, 2180, + 2180, 1538, 2181, 1538, 1610, 2181, 2181, 1610, 2182, 1610, 1608, 2182, + 2182, 1608, 2183, 1608, 1606, 2183, 2183, 1606, 2184, 1606, 1604, 2184, + 2184, 1604, 2185, 1604, 1602, 2185, 2185, 1602, 2186, 1602, 2170, 2186, + 2186, 2170, 2187, 2170, 2168, 2187, 2187, 2168, 2188, 2168, 2166, 2188, + 2188, 2166, 1581, 2166, 1582, 1581, 1581, 1582, 1579, 1582, 1580, 1579, + 1579, 1580, 1566, 1580, 1567, 1566, 1566, 1567, 1564, 1567, 1565, 1564, + 1564, 1565, 1562, 1565, 1563, 1562, 1562, 1563, 1561, 1563, 1540, 1561, + 1561, 1561, 2180, 1561, 2180, 2180, 2180, 2180, 2181, 2180, 2181, 2181, + 2181, 2181, 2182, 2181, 2182, 2182, 2182, 2182, 2183, 2182, 2183, 2183, + 2183, 2183, 2184, 2183, 2184, 2184, 2184, 2184, 2185, 2184, 2185, 2185, + 2185, 2185, 2186, 2185, 2186, 2186, 2186, 2186, 2187, 2186, 2187, 2187, + 2187, 2187, 2188, 2187, 2188, 2188, 2188, 2188, 1581, 2188, 1581, 1581, + 1581, 1581, 1579, 1581, 1579, 1579, 1579, 1579, 1566, 1579, 1566, 1566, + 1566, 1566, 1564, 1566, 1564, 1564, 1564, 1564, 1562, 1564, 1562, 1562, + 1562, 1562, 1561, 1562, 1561, 1561, 2189, 1318, 2190, 1318, 1300, 2190, + 2190, 1300, 2191, 1300, 1298, 2191, 2191, 1298, 2192, 1298, 2193, 2192, + 2192, 2193, 2194, 2193, 1320, 2194, 2194, 1320, 2189, 1320, 1318, 2189, + 2189, 2189, 2190, 2189, 2190, 2190, 2190, 2190, 2191, 2190, 2191, 2191, + 2191, 2191, 2192, 2191, 2192, 2192, 2192, 2192, 2194, 2192, 2194, 2194, + 2194, 2194, 2189, 2194, 2189, 2189, 2205, 2198, 2206, 2198, 2196, 2206, + 2206, 2196, 2207, 2196, 2204, 2207, 2207, 2204, 2208, 2204, 2209, 2208, + 2208, 2209, 2210, 2209, 2211, 2210, 2210, 2211, 2212, 2211, 2213, 2212, + 2212, 2213, 2214, 2213, 2215, 2214, 2214, 2215, 2216, 2215, 2217, 2216, + 2216, 2217, 2218, 2217, 2219, 2218, 2218, 2219, 2220, 2219, 2221, 2220, + 2220, 2221, 2222, 2221, 2223, 2222, 2222, 2223, 2224, 2223, 2225, 2224, + 2224, 2225, 2226, 2225, 2227, 2226, 2226, 2227, 2228, 2227, 2229, 2228, + 2228, 2229, 2230, 2229, 2231, 2230, 2230, 2231, 2232, 2231, 2233, 2232, + 2232, 2233, 2234, 2233, 2235, 2234, 2234, 2235, 2236, 2235, 2237, 2236, + 2236, 2237, 2205, 2237, 2198, 2205, 2205, 2205, 2206, 2205, 2206, 2206, + 2206, 2206, 2207, 2206, 2207, 2207, 2207, 2207, 2208, 2207, 2208, 2208, + 2208, 2208, 2210, 2208, 2210, 2210, 2210, 2210, 2212, 2210, 2212, 2212, + 2212, 2212, 2214, 2212, 2214, 2214, 2214, 2214, 2216, 2214, 2216, 2216, + 2216, 2216, 2218, 2216, 2218, 2218, 2218, 2218, 2220, 2218, 2220, 2220, + 2220, 2220, 2222, 2220, 2222, 2222, 2222, 2222, 2224, 2222, 2224, 2224, + 2224, 2224, 2226, 2224, 2226, 2226, 2226, 2226, 2228, 2226, 2228, 2228, + 2228, 2228, 2230, 2228, 2230, 2230, 2230, 2230, 2232, 2230, 2232, 2232, + 2232, 2232, 2234, 2232, 2234, 2234, 2234, 2234, 2236, 2234, 2236, 2236, + 2236, 2236, 2205, 2236, 2205, 2205, 2238, 2239, 2240, 2239, 2241, 2240, + 2240, 2241, 2242, 2241, 2243, 2242, 2242, 2243, 2244, 2243, 2245, 2244, + 2244, 2245, 2246, 2245, 2247, 2246, 2246, 2247, 2248, 2247, 2249, 2248, + 2248, 2249, 2250, 2249, 2251, 2250, 2250, 2251, 2252, 2251, 2253, 2252, + 2252, 2253, 2254, 2253, 2255, 2254, 2254, 2255, 2256, 2255, 2257, 2256, + 2256, 2257, 2238, 2257, 2239, 2238, 2238, 2238, 2240, 2238, 2240, 2240, + 2240, 2240, 2242, 2240, 2242, 2242, 2242, 2242, 2244, 2242, 2244, 2244, + 2244, 2244, 2246, 2244, 2246, 2246, 2246, 2246, 2248, 2246, 2248, 2248, + 2248, 2248, 2250, 2248, 2250, 2250, 2250, 2250, 2252, 2250, 2252, 2252, + 2252, 2252, 2254, 2252, 2254, 2254, 2254, 2254, 2256, 2254, 2256, 2256, + 2256, 2256, 2238, 2256, 2238, 2238, 2258, 2247, 2259, 2247, 2245, 2259, + 2259, 2245, 2260, 2245, 2261, 2260, 2260, 2261, 2262, 2261, 2263, 2262, + 2262, 2263, 2264, 2263, 2265, 2264, 2264, 2265, 2258, 2265, 2247, 2258, + 2258, 2258, 2259, 2258, 2259, 2259, 2259, 2259, 2260, 2259, 2260, 2260, + 2260, 2260, 2262, 2260, 2262, 2262, 2262, 2262, 2264, 2262, 2264, 2264, + 2264, 2264, 2258, 2264, 2258, 2258, 2266, 2241, 2267, 2241, 2239, 2267, + 2267, 2239, 2268, 2239, 2257, 2268, 2268, 2257, 2269, 2257, 2270, 2269, + 2269, 2270, 2271, 2270, 2272, 2271, 2271, 2272, 2273, 2272, 2274, 2273, + 2273, 2274, 2275, 2274, 2276, 2275, 2275, 2276, 2277, 2276, 2278, 2277, + 2277, 2278, 2279, 2278, 2280, 2279, 2279, 2280, 2281, 2280, 2282, 2281, + 2281, 2282, 2266, 2282, 2241, 2266, 2266, 2266, 2267, 2266, 2267, 2267, + 2267, 2267, 2268, 2267, 2268, 2268, 2268, 2268, 2269, 2268, 2269, 2269, + 2269, 2269, 2271, 2269, 2271, 2271, 2271, 2271, 2273, 2271, 2273, 2273, + 2273, 2273, 2275, 2273, 2275, 2275, 2275, 2275, 2277, 2275, 2277, 2277, + 2277, 2277, 2279, 2277, 2279, 2279, 2279, 2279, 2281, 2279, 2281, 2281, + 2281, 2281, 2266, 2281, 2266, 2266, 2283, 2284, 2285, 2284, 2286, 2285, + 2285, 2286, 2287, 2286, 2288, 2287, 2287, 2288, 2289, 2288, 2290, 2289, + 2289, 2290, 2291, 2290, 2292, 2291, 2291, 2292, 2293, 2292, 2294, 2293, + 2293, 2294, 2295, 2294, 2296, 2295, 2295, 2296, 2297, 2296, 2298, 2297, + 2297, 2298, 2299, 2298, 2300, 2299, 2299, 2300, 2301, 2300, 2302, 2301, + 2301, 2302, 2303, 2302, 2304, 2303, 2303, 2304, 2305, 2304, 2306, 2305, + 2305, 2306, 2307, 2306, 2308, 2307, 2307, 2308, 2283, 2308, 2284, 2283, + 2283, 2283, 2285, 2283, 2285, 2285, 2285, 2285, 2287, 2285, 2287, 2287, + 2287, 2287, 2289, 2287, 2289, 2289, 2289, 2289, 2291, 2289, 2291, 2291, + 2291, 2291, 2293, 2291, 2293, 2293, 2293, 2293, 2295, 2293, 2295, 2295, + 2295, 2295, 2297, 2295, 2297, 2297, 2297, 2297, 2299, 2297, 2299, 2299, + 2299, 2299, 2301, 2299, 2301, 2301, 2301, 2301, 2303, 2301, 2303, 2303, + 2303, 2303, 2305, 2303, 2305, 2305, 2305, 2305, 2307, 2305, 2307, 2307, + 2307, 2307, 2283, 2307, 2283, 2283, 2309, 2310, 2311, 2310, 2312, 2311, + 2311, 2312, 2313, 2312, 2314, 2313, 2313, 2314, 2315, 2314, 2316, 2315, + 2315, 2316, 2317, 2316, 2318, 2317, 2317, 2318, 2319, 2318, 2290, 2319, + 2319, 2290, 2320, 2290, 2288, 2320, 2320, 2288, 2321, 2288, 2286, 2321, + 2321, 2286, 2322, 2286, 2323, 2322, 2322, 2323, 2324, 2323, 2325, 2324, + 2324, 2325, 2326, 2325, 2327, 2326, 2326, 2327, 2328, 2327, 2329, 2328, + 2328, 2329, 2330, 2329, 2331, 2330, 2330, 2331, 2332, 2331, 2333, 2332, + 2332, 2333, 2309, 2333, 2310, 2309, 2309, 2309, 2311, 2309, 2311, 2311, + 2311, 2311, 2313, 2311, 2313, 2313, 2313, 2313, 2315, 2313, 2315, 2315, + 2315, 2315, 2317, 2315, 2317, 2317, 2317, 2317, 2319, 2317, 2319, 2319, + 2319, 2319, 2320, 2319, 2320, 2320, 2320, 2320, 2321, 2320, 2321, 2321, + 2321, 2321, 2322, 2321, 2322, 2322, 2322, 2322, 2324, 2322, 2324, 2324, + 2324, 2324, 2326, 2324, 2326, 2326, 2326, 2326, 2328, 2326, 2328, 2328, + 2328, 2328, 2330, 2328, 2330, 2330, 2330, 2330, 2332, 2330, 2332, 2332, + 2332, 2332, 2309, 2332, 2309, 2309, 2334, 2335, 2336, 2335, 2337, 2336, + 2336, 2337, 2338, 2337, 2339, 2338, 2338, 2339, 2340, 2339, 2341, 2340, + 2340, 2341, 2342, 2341, 2343, 2342, 2342, 2343, 2344, 2343, 2345, 2344, + 2344, 2345, 2346, 2345, 2347, 2346, 2346, 2347, 2348, 2347, 2349, 2348, + 2348, 2349, 2350, 2349, 2351, 2350, 2350, 2351, 2352, 2351, 2353, 2352, + 2352, 2353, 2354, 2353, 2355, 2354, 2354, 2355, 2356, 2355, 2357, 2356, + 2356, 2357, 2358, 2357, 2359, 2358, 2358, 2359, 2360, 2359, 2361, 2360, + 2360, 2361, 2362, 2361, 2363, 2362, 2362, 2363, 2364, 2363, 2365, 2364, + 2364, 2365, 2366, 2365, 2367, 2366, 2366, 2367, 2368, 2367, 2369, 2368, + 2368, 2369, 2334, 2369, 2335, 2334, 2334, 2334, 2336, 2334, 2336, 2336, + 2336, 2336, 2338, 2336, 2338, 2338, 2338, 2338, 2340, 2338, 2340, 2340, + 2340, 2340, 2342, 2340, 2342, 2342, 2342, 2342, 2344, 2342, 2344, 2344, + 2344, 2344, 2346, 2344, 2346, 2346, 2346, 2346, 2348, 2346, 2348, 2348, + 2348, 2348, 2350, 2348, 2350, 2350, 2350, 2350, 2352, 2350, 2352, 2352, + 2352, 2352, 2354, 2352, 2354, 2354, 2354, 2354, 2356, 2354, 2356, 2356, + 2356, 2356, 2358, 2356, 2358, 2358, 2358, 2358, 2360, 2358, 2360, 2360, + 2360, 2360, 2362, 2360, 2362, 2362, 2362, 2362, 2364, 2362, 2364, 2364, + 2364, 2364, 2366, 2364, 2366, 2366, 2366, 2366, 2368, 2366, 2368, 2368, + 2368, 2368, 2334, 2368, 2334, 2334, 2338, 2339, 2336, 2339, 2337, 2336, + 2336, 2337, 2370, 2337, 2371, 2370, 2370, 2371, 2372, 2371, 2373, 2372, + 2372, 2373, 2374, 2373, 2375, 2374, 2374, 2375, 2376, 2375, 2377, 2376, + 2376, 2377, 2378, 2377, 2379, 2378, 2378, 2379, 2380, 2379, 2381, 2380, + 2380, 2381, 2382, 2381, 2383, 2382, 2382, 2383, 2384, 2383, 2385, 2384, + 2384, 2385, 2386, 2385, 2387, 2386, 2386, 2387, 2338, 2387, 2339, 2338, + 2338, 2338, 2336, 2338, 2336, 2336, 2336, 2336, 2370, 2336, 2370, 2370, + 2370, 2370, 2372, 2370, 2372, 2372, 2372, 2372, 2374, 2372, 2374, 2374, + 2374, 2374, 2376, 2374, 2376, 2376, 2376, 2376, 2378, 2376, 2378, 2378, + 2378, 2378, 2380, 2378, 2380, 2380, 2380, 2380, 2382, 2380, 2382, 2382, + 2382, 2382, 2384, 2382, 2384, 2384, 2384, 2384, 2386, 2384, 2386, 2386, + 2386, 2386, 2338, 2386, 2338, 2338 + ] + }, + { + "id": "shape1_part2", + "type": "TRIANGLES", + "indices": [ + 40, 42, 44, 70, 72, 74, 76, 70, 74, 80, 82, 84, + 38, 32, 34, 38, 34, 36, 44, 46, 48, 40, 44, 48, + 28, 32, 38, 54, 56, 58, 54, 50, 52, 54, 48, 50, + 48, 54, 58, 60, 48, 58, 48, 60, 66, 62, 66, 60, + 66, 40, 48, 62, 64, 66, 30, 32, 28, 88, 90, 0, + 40, 26, 28, 4, 6, 8, 40, 70, 26, 40, 28, 38, + 24, 26, 76, 66, 68, 70, 66, 70, 40, 4, 10, 16, + 10, 4, 8, 14, 10, 12, 14, 16, 10, 24, 78, 22, + 70, 76, 26, 80, 86, 78, 86, 80, 84, 20, 86, 88, + 2, 20, 88, 2, 88, 0, 20, 78, 86, 78, 24, 76, + 20, 22, 78, 20, 16, 18, 2, 16, 20, 4, 16, 2, + 104, 100, 102, 98, 100, 104, 106, 96, 98, 106, 98, 104, + 106, 108, 92, 96, 106, 92, 96, 92, 94, 116, 118, 120, + 112, 114, 116, 110, 112, 116, 110, 116, 120, 148, 152, 146, + 152, 156, 158, 146, 142, 144, 150, 152, 148, 146, 158, 142, + 146, 152, 158, 154, 156, 152, 194, 190, 192, 208, 194, 196, + 208, 196, 198, 207, 198, 160, 208, 198, 207, 194, 188, 190, + 200, 194, 208, 200, 188, 194, 164, 206, 160, 164, 160, 162, + 206, 164, 166, 207, 160, 206, 200, 184, 188, 184, 186, 188, + 200, 201, 184, 184, 201, 202, 182, 184, 202, 174, 203, 204, + 176, 202, 203, 176, 203, 174, 178, 202, 176, 180, 182, 202, + 178, 180, 202, 172, 174, 204, 166, 205, 206, 170, 166, 168, + 170, 205, 166, 204, 205, 170, 172, 204, 170, 229, 209, 211, + 215, 229, 211, 215, 211, 213, 223, 219, 221, 217, 219, 223, + 225, 217, 223, 215, 217, 225, 227, 229, 215, 225, 227, 215, + 231, 32, 30, 251, 253, 255, 30, 28, 26, 233, 30, 26, + 235, 30, 233, 245, 247, 251, 249, 251, 247, 255, 245, 251, + 235, 243, 245, 255, 231, 30, 255, 235, 245, 235, 255, 30, + 235, 241, 243, 237, 239, 235, 239, 241, 235, 263, 257, 259, + 263, 259, 261, 265, 271, 257, 263, 265, 257, 267, 271, 265, + 269, 271, 267, 275, 277, 279, 273, 275, 279, 281, 283, 285, + 289, 281, 285, 289, 285, 287, 299, 303, 293, 291, 293, 303, + 293, 295, 299, 301, 303, 299, 297, 299, 295, 305, 307, 309, + 310, 305, 309, 311, 315, 317, 313, 315, 311, 347, 349, 351, + 365, 351, 353, 367, 347, 351, 363, 365, 353, 363, 353, 355, + 359, 355, 357, 361, 355, 359, 363, 355, 361, 365, 367, 351, + 345, 347, 367, 381, 383, 385, 387, 370, 385, 381, 385, 370, + 369, 370, 387, 371, 381, 370, 372, 379, 381, 371, 372, 381, + 373, 379, 372, 374, 377, 379, 373, 374, 379, 375, 377, 374, + 389, 395, 399, 391, 393, 389, 393, 395, 389, 397, 399, 395, + 409, 411, 413, 405, 409, 413, 405, 413, 415, 405, 415, 401, + 403, 405, 401, 407, 409, 405, 427, 429, 431, 423, 427, 431, + 425, 427, 423, 423, 431, 433, 421, 423, 433, 421, 433, 417, + 419, 421, 417, 436, 438, 440, 442, 436, 440, 435, 436, 442, + 450, 435, 442, 450, 442, 444, 449, 450, 444, 449, 444, 446, + 448, 449, 446, 472, 474, 475, 468, 470, 472, 477, 472, 475, + 477, 475, 476, 466, 468, 472, 466, 472, 477, 464, 466, 477, + 464, 477, 478, 480, 478, 479, 452, 480, 451, 452, 478, 480, + 462, 464, 478, 478, 454, 462, 452, 454, 478, 460, 462, 454, + 458, 460, 454, 456, 458, 454, 295, 481, 483, 293, 481, 295, + 487, 303, 301, 301, 299, 297, 485, 487, 301, 485, 301, 297, + 495, 491, 493, 489, 491, 495, 493, 499, 501, 497, 499, 493, + 495, 493, 501, 497, 503, 499, 507, 503, 497, 505, 507, 497, + 513, 515, 517, 521, 513, 517, 521, 517, 519, 511, 513, 521, + 511, 521, 509, 545, 523, 525, 545, 525, 527, 547, 523, 545, + 543, 545, 527, 527, 529, 531, 535, 531, 533, 531, 543, 527, + 535, 543, 531, 535, 541, 543, 539, 541, 535, 539, 535, 537, + 555, 114, 112, 557, 112, 110, 559, 555, 112, 559, 112, 557, + 553, 555, 559, 559, 551, 553, 561, 551, 559, 561, 549, 551, + 563, 549, 561, 571, 573, 549, 563, 571, 549, 565, 571, 563, + 569, 571, 565, 567, 569, 565, 583, 579, 581, 589, 579, 583, + 587, 589, 583, 587, 583, 585, 591, 579, 589, 595, 597, 599, + 601, 595, 599, 575, 591, 606, 579, 575, 577, 591, 575, 579, + 606, 591, 593, 606, 593, 595, 605, 606, 595, 605, 595, 601, + 605, 601, 603, 611, 579, 607, 611, 607, 609, 581, 579, 611, + 613, 581, 611, 620, 621, 615, 619, 620, 615, 617, 619, 615, + 622, 624, 605, 622, 605, 603, 627, 629, 631, 625, 627, 631, + 635, 624, 622, 636, 624, 635, 639, 633, 635, 622, 637, 639, + 639, 635, 622, 648, 643, 645, 648, 645, 647, 643, 648, 649, + 655, 643, 649, 655, 649, 651, 641, 643, 655, 653, 655, 651, + 674, 668, 670, 672, 674, 670, 676, 674, 672, 120, 676, 672, + 118, 676, 120, 684, 668, 678, 684, 678, 680, 682, 684, 680, + 686, 668, 684, 670, 668, 686, 694, 696, 698, 704, 692, 702, + 690, 704, 688, 690, 692, 704, 694, 700, 702, 694, 698, 700, + 702, 692, 694, 720, 721, 694, 720, 694, 692, 719, 720, 692, + 712, 719, 692, 708, 712, 692, 706, 708, 692, 710, 712, 708, + 716, 719, 712, 714, 716, 712, 718, 719, 716, 732, 734, 736, + 728, 730, 732, 742, 724, 736, 732, 736, 724, 728, 732, 724, + 736, 738, 740, 740, 742, 736, 726, 728, 724, 754, 748, 750, + 754, 750, 752, 722, 724, 754, 742, 744, 746, 742, 748, 724, + 746, 748, 742, 754, 724, 748, 722, 754, 756, 764, 766, 768, + 758, 760, 762, 764, 768, 770, 772, 758, 762, 774, 758, 772, + 770, 772, 762, 770, 762, 764, 768, 778, 780, 768, 780, 782, + 770, 768, 782, 782, 784, 776, 770, 782, 776, 780, 786, 788, + 784, 780, 788, 782, 780, 784, 790, 784, 788, 796, 776, 792, + 790, 792, 784, 776, 784, 792, 794, 796, 792, 830, 832, 834, + 838, 834, 836, 840, 842, 844, 820, 824, 826, 822, 824, 820, + 818, 820, 826, 816, 818, 826, 840, 814, 816, 814, 844, 812, + 826, 828, 830, 838, 826, 830, 838, 830, 834, 826, 838, 840, + 826, 840, 816, 810, 812, 848, 840, 844, 814, 846, 812, 844, + 848, 812, 846, 726, 724, 722, 726, 848, 728, 790, 786, 726, + 726, 780, 848, 780, 810, 848, 722, 790, 726, 788, 786, 790, + 810, 778, 808, 780, 726, 786, 780, 778, 810, 806, 808, 778, + 766, 802, 806, 804, 806, 802, 850, 790, 722, 802, 760, 800, + 806, 778, 766, 766, 778, 768, 792, 790, 850, 766, 760, 802, + 760, 766, 764, 762, 760, 764, 798, 800, 760, 758, 798, 760, + 868, 870, 852, 864, 866, 868, 864, 868, 856, 854, 868, 852, + 856, 868, 854, 862, 864, 856, 856, 858, 860, 862, 856, 860, + 882, 884, 886, 880, 882, 886, 888, 864, 862, 888, 880, 886, + 862, 880, 888, 862, 876, 880, 878, 880, 876, 872, 876, 862, + 874, 876, 872, 894, 896, 898, 892, 898, 890, 894, 898, 892, + 904, 906, 900, 902, 904, 900, 913, 908, 910, 913, 910, 912, + 916, 914, 915, 917, 914, 916, 906, 918, 920, 900, 906, 920, + 908, 924, 926, 910, 908, 926, 922, 924, 908, 936, 928, 930, + 936, 930, 932, 858, 936, 932, 932, 904, 858, 904, 932, 934, + 860, 904, 902, 860, 858, 904, 946, 948, 950, 952, 946, 950, + 960, 954, 956, 960, 956, 958, 940, 942, 944, 940, 944, 946, + 918, 938, 940, 920, 918, 940, 966, 920, 940, 940, 946, 952, + 940, 952, 954, 964, 966, 962, 940, 960, 966, 954, 960, 940, + 962, 966, 960, 972, 974, 968, 972, 968, 928, 970, 972, 928, + 970, 928, 936, 389, 974, 972, 391, 389, 972, 391, 972, 970, + 976, 391, 970, 978, 391, 976, 870, 976, 970, 870, 970, 852, + 866, 976, 870, 866, 870, 868, 988, 399, 397, 986, 988, 397, + 980, 985, 986, 397, 980, 986, 984, 980, 982, 985, 980, 984, + 993, 997, 999, 993, 999, 990, 995, 997, 993, 991, 993, 990, + 930, 968, 997, 930, 997, 995, 930, 995, 1000, 928, 968, 930, + 1006, 1030, 1002, 1004, 1006, 1002, 1006, 1028, 1030, 1024, 1028, 1006, + 1026, 1028, 1024, 1022, 1024, 1006, 1020, 1022, 1006, 1020, 1006, 1008, + 1010, 1020, 1008, 1018, 1020, 1010, 1018, 1014, 1016, 1010, 1012, 1018, + 1012, 1014, 1018, 1034, 1036, 1037, 1032, 1034, 1037, 1037, 1038, 1040, + 1032, 1037, 1040, 1046, 1042, 1044, 607, 1042, 1046, 609, 607, 1046, + 609, 1046, 1048, 1055, 1059, 1051, 1055, 1051, 1053, 1049, 1051, 1059, + 1057, 1059, 1055, 1004, 1002, 1061, 1004, 1061, 1049, 1059, 1004, 1049, + 1008, 1059, 1057, 1006, 1004, 1059, 1008, 1006, 1059, 1077, 1081, 1083, + 1079, 1081, 1077, 1067, 1077, 1083, 1063, 1067, 1083, 1071, 1077, 1067, + 1069, 1071, 1067, 1073, 1077, 1071, 1075, 1077, 1073, 1065, 1067, 1063, + 1083, 1081, 1085, 1083, 1085, 1087, 1089, 1085, 1081, 1095, 1097, 1099, + 1042, 1091, 1093, 1042, 1093, 1095, 1109, 1095, 1099, 1109, 1099, 1101, + 1042, 1095, 1109, 1044, 1042, 1109, 1087, 1101, 1103, 1105, 1109, 1101, + 1105, 1101, 1087, 1085, 1105, 1087, 1107, 1109, 1105, 1119, 1065, 1063, + 1119, 1063, 1111, 1113, 1119, 1111, 1117, 1119, 1113, 1115, 1117, 1113, + 1125, 1075, 1073, 1123, 1075, 1125, 1113, 1127, 1115, 1127, 1129, 1115, + 1113, 1121, 1127, 1123, 1125, 1127, 1121, 1123, 1127, 1055, 1123, 1121, + 1053, 1123, 1055, 1133, 1135, 1137, 1141, 1131, 1137, 1141, 1137, 1139, + 1133, 1137, 1131, 1149, 1151, 1153, 1145, 1147, 1149, 1149, 1153, 1155, + 1145, 1149, 1155, 1143, 1145, 1155, 1141, 1139, 1145, 1141, 1145, 1143, + 1159, 1161, 409, 407, 1159, 409, 1159, 407, 1157, 1133, 1161, 1159, + 1133, 1159, 1135, 1243, 1245, 1247, 1243, 1247, 1249, 1237, 1239, 1241, + 1235, 1237, 1241, 1249, 1251, 1253, 1253, 1243, 1249, 1255, 1243, 1253, + 1241, 1243, 1255, 1227, 1229, 1231, 1233, 1227, 1231, 1221, 1223, 1225, + 1219, 1221, 1225, 1267, 1273, 1279, 1271, 1267, 1269, 1273, 1267, 1271, + 1273, 1275, 1277, 1279, 1273, 1277, 1281, 1267, 1279, 1283, 1267, 1281, + 1213, 1215, 1217, 1211, 1213, 1217, 1285, 1287, 1289, 1207, 1209, 1219, + 1217, 1219, 1209, 1211, 1217, 1209, 1235, 1241, 1255, 1225, 1207, 1219, + 1225, 1227, 1255, 1255, 1207, 1225, 1207, 1283, 1205, 1233, 1235, 1255, + 1255, 1227, 1233, 1257, 1207, 1255, 1257, 1261, 1207, 1259, 1261, 1257, + 1261, 1265, 1207, 1263, 1265, 1261, 1267, 1207, 1265, 1283, 1207, 1267, + 1295, 1289, 1291, 1295, 1291, 1293, 1205, 1289, 1201, 1285, 1205, 1283, + 1289, 1205, 1285, 1199, 1201, 1289, 1203, 1205, 1201, 1289, 1179, 1199, + 1295, 1169, 1289, 1165, 1169, 1295, 1163, 1165, 1295, 1167, 1169, 1165, + 1169, 1171, 1289, 1171, 1177, 1289, 1177, 1171, 1173, 1175, 1177, 1173, + 1177, 1179, 1289, 1185, 1199, 1179, 1185, 1179, 1181, 1183, 1185, 1181, + 1187, 1199, 1185, 1187, 1197, 1199, 1191, 1187, 1189, 1191, 1197, 1187, + 1197, 1191, 1193, 1195, 1197, 1193, 1303, 1305, 1307, 1307, 1309, 1311, + 1313, 1307, 1311, 1315, 1297, 1299, 1301, 1315, 1299, 1303, 1313, 1315, + 1303, 1307, 1313, 1315, 1301, 1303, 1319, 1321, 1323, 1317, 1319, 1323, + 1326, 1327, 1329, 1331, 1326, 1329, 1325, 1326, 1331, 1339, 1335, 1337, + 1339, 1333, 1335, 1340, 1333, 1339, 1341, 1333, 1340, 1343, 1345, 1347, + 1327, 1343, 1347, 1351, 1329, 1327, 1347, 1349, 1351, 1351, 1327, 1347, + 1331, 1329, 1351, 1535, 1537, 1539, 1543, 1539, 1541, 1535, 1539, 1543, + 1533, 1535, 1543, 1533, 1547, 1531, 1543, 1545, 1533, 1545, 1547, 1533, + 1549, 1531, 1547, 1557, 1559, 1551, 1553, 1555, 1557, 1553, 1557, 1551, + 1564, 1566, 1568, 1570, 1564, 1568, 1562, 1564, 1570, 1572, 1561, 1562, + 1572, 1562, 1570, 1581, 1553, 1551, 1573, 1581, 1551, 1577, 1573, 1575, + 1579, 1581, 1573, 1577, 1579, 1573, 1566, 1579, 1577, 1568, 1566, 1577, + 1583, 1585, 1587, 1597, 1583, 1587, 1597, 1587, 1589, 1591, 1595, 1589, + 1597, 1589, 1595, 1593, 1595, 1591, 1559, 1583, 1597, 1551, 1559, 1597, + 1551, 1597, 1595, 1573, 1551, 1595, 1599, 1573, 1595, 1593, 1599, 1595, + 1575, 1573, 1599, 1624, 1626, 1628, 1620, 1624, 1628, 1605, 1601, 1603, + 1601, 1620, 1628, 1620, 1601, 1605, 1622, 1624, 1620, 1618, 1620, 1605, + 1605, 1616, 1618, 1607, 1609, 1605, 1609, 1616, 1605, 1612, 1616, 1609, + 1612, 1609, 1611, 1613, 1616, 1612, 1614, 1616, 1613, 1638, 1636, 1637, + 1634, 1636, 1638, 1630, 1639, 1640, 1639, 1634, 1638, 1632, 1639, 1630, + 1632, 1634, 1639, 1657, 1659, 1641, 1643, 1657, 1641, 1655, 1657, 1643, + 1651, 1645, 1647, 1649, 1651, 1647, 1653, 1645, 1651, 1643, 1645, 1653, + 1655, 1643, 1653, 1653, 1665, 1655, 1667, 1655, 1665, 209, 1667, 1665, + 211, 209, 1665, 1653, 1663, 1665, 1661, 1663, 1653, 221, 1663, 1661, + 219, 1663, 221, 1671, 1677, 1679, 1669, 1671, 1679, 1659, 1669, 1679, + 1641, 1659, 1679, 1671, 1673, 1677, 1675, 1677, 1673, 1649, 1647, 1677, + 1675, 1649, 1677, 1681, 1683, 1685, 1687, 1681, 1685, 1671, 1681, 1687, + 1695, 1689, 1691, 1693, 1695, 1691, 1673, 1689, 1695, 1687, 1689, 1673, + 1671, 1687, 1673, 1723, 1725, 1727, 1721, 1723, 1727, 1711, 1715, 1717, + 1711, 1717, 1719, 1713, 1715, 1711, 1721, 1727, 1729, 1703, 1705, 1707, + 1703, 1707, 1709, 1697, 1699, 1701, 1697, 1701, 1703, 1697, 1703, 1709, + 1697, 1709, 1711, 1729, 1697, 1711, 1719, 1729, 1711, 1729, 1719, 1721, + 1732, 1734, 1731, 1733, 1734, 1732, 1737, 1738, 1735, 1737, 1735, 1736, + 1742, 1743, 1745, 1741, 1739, 1740, 1742, 1745, 1739, 1741, 1742, 1739, + 1767, 1769, 1747, 1749, 1767, 1747, 1683, 1767, 1749, 1685, 1683, 1749, + 1685, 1749, 1751, 1757, 1751, 1753, 1755, 1757, 1753, 1757, 1691, 1685, + 1757, 1685, 1751, 1691, 1757, 1759, 1765, 1761, 1763, 1759, 1761, 1765, + 1693, 1759, 1765, 1691, 1759, 1693, 1769, 1777, 1779, 1775, 1769, 1779, + 1747, 1769, 1775, 1781, 1775, 1779, 1773, 1775, 1781, 1753, 1771, 1773, + 1773, 1791, 1753, 1755, 1753, 1791, 1783, 1773, 1781, 1783, 1791, 1773, + 1793, 1755, 1791, 1785, 1789, 1791, 1785, 1791, 1783, 1787, 1789, 1785, + 1763, 1789, 1787, 1761, 1789, 1763, 1799, 1801, 1795, 1797, 1799, 1795, + 1807, 1809, 1811, 1811, 1803, 1805, 1807, 1811, 1805, 1815, 1817, 1819, + 1813, 1815, 1819, 1813, 1819, 1820, 1795, 1821, 1815, 1795, 1815, 1813, + 1797, 1795, 1813, 227, 1829, 1831, 225, 1823, 227, 1823, 1829, 227, + 1825, 1829, 1823, 1827, 1829, 1825, 1835, 1837, 1699, 1803, 1835, 1699, + 1833, 1835, 1803, 1838, 1803, 1699, 1697, 1838, 1699, 1805, 1803, 1838, + 1852, 1854, 1856, 1846, 1848, 1850, 1858, 1850, 1852, 1858, 1852, 1856, + 1846, 1850, 1858, 1862, 1846, 1858, 1862, 1858, 1860, 1862, 1844, 1846, + 1842, 1862, 1840, 1842, 1844, 1862, 1868, 1870, 1864, 1866, 1868, 1864, + 1874, 1876, 1878, 1872, 1874, 1878, 1884, 1886, 1887, 1880, 1882, 1884, + 1880, 1884, 1887, 1864, 1876, 1874, 1888, 1866, 1864, 1888, 1864, 1874, + 1850, 267, 265, 1850, 1892, 267, 1850, 1890, 1892, 1850, 265, 1852, + 1848, 1890, 1850, 1894, 1842, 1840, 1894, 1840, 1898, 1896, 1842, 1894, + 1872, 1894, 1898, 1898, 1882, 1880, 1878, 1894, 1872, 1872, 1898, 1880, + 1902, 1904, 1906, 1908, 1902, 1906, 1900, 1902, 1908, 1910, 1900, 1908, + 1912, 1914, 1904, 1902, 1912, 1904, 1916, 1912, 1902, 1900, 1916, 1902, + 1918, 1922, 1914, 1920, 1922, 1918, 1914, 1926, 1918, 1912, 1926, 1914, + 1916, 1926, 1912, 1924, 1926, 1916, 1924, 1918, 1926, 1934, 1936, 1938, + 1918, 1932, 1938, 1918, 1938, 1920, 1932, 1918, 1924, 1934, 1938, 1932, + 1930, 1932, 1924, 1928, 1930, 1924, 1940, 1946, 1948, 1950, 1940, 1948, + 1942, 1946, 1940, 1944, 1946, 1942, 1958, 1960, 1934, 1958, 1934, 1932, + 1930, 1952, 1958, 1956, 1958, 1952, 1954, 1956, 1952, 1946, 1928, 1948, + 1932, 1930, 1958, 1928, 1952, 1930, 1944, 1928, 1946, 1928, 1944, 1952, + 283, 1962, 1963, 283, 1963, 1965, 283, 1965, 1967, 285, 283, 1967, + 1973, 1979, 281, 1977, 1979, 1973, 1975, 1977, 1973, 289, 1973, 281, + 1971, 289, 1969, 1971, 1973, 289, 1981, 1640, 1980, 1630, 1640, 1981, + 1531, 1630, 1981, 1531, 1981, 1533, 1632, 1630, 1531, 1982, 1983, 1984, + 1982, 511, 509, 625, 1982, 1984, 625, 1984, 1986, 1982, 631, 511, + 625, 631, 1982, 1990, 1992, 1994, 1988, 491, 489, 1990, 1994, 491, + 1988, 1990, 491, 2008, 2010, 2012, 2008, 2012, 2014, 2004, 2006, 2008, + 2000, 2002, 2004, 2004, 2018, 1996, 2014, 2004, 2008, 2000, 2004, 1996, + 1998, 2000, 1996, 2014, 2016, 2018, 2018, 2004, 2014, 1996, 2018, 2020, + 2104, 2098, 2100, 2102, 2104, 2100, 2094, 2098, 2104, 2096, 2098, 2094, + 2094, 2104, 2106, 2106, 2092, 2094, 2092, 2106, 2107, 2084, 2080, 2082, + 2086, 2078, 2080, 2086, 2072, 2078, 2086, 2080, 2084, 2078, 2074, 2076, + 2088, 2072, 2086, 2072, 2074, 2078, 2108, 2092, 2107, 2058, 2062, 2066, + 2062, 2058, 2060, 2058, 2052, 2056, 2064, 2066, 2062, 2070, 2072, 2088, + 2070, 2088, 2090, 2066, 2048, 2050, 2052, 2054, 2056, 2066, 2052, 2058, + 2066, 2050, 2052, 2108, 2110, 2090, 2108, 2090, 2092, 2042, 2044, 2046, + 2040, 2036, 2038, 2042, 2034, 2036, 2112, 2068, 2070, 2110, 2112, 2070, + 2110, 2070, 2090, 2028, 2032, 2034, 2042, 2036, 2040, 2034, 2042, 2046, + 2026, 2028, 2034, 2030, 2032, 2028, 2046, 2026, 2034, 2026, 2046, 2114, + 2022, 2026, 2114, 2024, 2026, 2022, 2048, 2066, 2068, 2048, 2068, 2112, + 2112, 2046, 2048, 2112, 2114, 2046, 2116, 2022, 2114, 2120, 311, 317, + 2120, 317, 2118, 2125, 2120, 2118, 2127, 2120, 2125, 882, 982, 2130, + 878, 882, 880, 882, 984, 982, 878, 984, 882, 2132, 984, 878, + 874, 878, 876, 2132, 878, 874, 2136, 2133, 2135, 2137, 2133, 2136, + 515, 2133, 2137, 517, 515, 2137, 2145, 547, 545, 2139, 545, 543, + 2145, 545, 2139, 2143, 2141, 2142, 2145, 2139, 2141, 2143, 2145, 2141, + 1986, 2146, 2148, 1984, 2146, 1986, 641, 1986, 2148, 641, 2148, 643, + 621, 2151, 2145, 621, 2145, 2143, 615, 621, 2143, 2149, 615, 2143, + 2150, 615, 2149, 2162, 2164, 2160, 2162, 2160, 2161, 2163, 2157, 2164, + 2163, 2164, 2162, 2167, 2175, 2177, 2178, 2167, 2177, 2165, 2167, 2178, + 2165, 2178, 2179, 2169, 2175, 2167, 2169, 2173, 2175, 2171, 2173, 2169, + 2172, 2173, 2171, 2184, 2185, 2186, 2186, 2187, 2188, 1579, 1564, 2188, + 1579, 2188, 1581, 1564, 1579, 1566, 1562, 2188, 1564, 1562, 2182, 2184, + 2183, 2184, 2182, 2186, 2188, 1562, 1562, 2184, 2186, 2180, 2182, 1562, + 2181, 2182, 2180, 1561, 2180, 1562, 2191, 2192, 2194, 2191, 2194, 2189, + 2190, 2191, 2189, 2224, 2226, 2228, 2208, 2210, 2212, 2214, 2208, 2212, + 2232, 2228, 2230, 2206, 2207, 2208, 2220, 2222, 2232, 2228, 2222, 2224, + 2232, 2222, 2228, 2232, 2218, 2220, 2234, 2218, 2232, 2216, 2218, 2234, + 2214, 2216, 2234, 2234, 2206, 2214, 2214, 2206, 2208, 2206, 2234, 2236, + 2205, 2206, 2236, 2244, 2240, 2242, 2244, 2256, 2238, 2244, 2238, 2240, + 2246, 2256, 2244, 2248, 2256, 2246, 2254, 2256, 2248, 2250, 2254, 2248, + 2252, 2254, 2250, 2262, 2259, 2260, 2258, 2259, 2262, 2264, 2258, 2262, + 2281, 2267, 2279, 2266, 2267, 2281, 2268, 2269, 2271, 2267, 2268, 2271, + 2273, 2277, 2271, 2275, 2277, 2273, 2277, 2267, 2271, 2279, 2267, 2277, + 2287, 2289, 2291, 2307, 2283, 2285, 2307, 2285, 2287, 2305, 2307, 2287, + 2303, 2305, 2287, 2287, 2291, 2293, 2301, 2303, 2287, 2293, 2299, 2301, + 2287, 2293, 2301, 2295, 2299, 2293, 2299, 2295, 2297, 2322, 2324, 2326, + 2317, 2326, 2328, 2317, 2328, 2330, 2322, 2326, 2317, 2319, 2322, 2317, + 2330, 2309, 2317, 2320, 2322, 2319, 2321, 2322, 2320, 2332, 2309, 2330, + 2315, 2317, 2309, 2311, 2315, 2309, 2313, 2315, 2311, 2368, 2334, 2336, + 2364, 2366, 2336, 2342, 2338, 2340, 2342, 2344, 2338, 2344, 2346, 2338, + 2336, 2338, 2364, 2336, 2366, 2368, 2338, 2346, 2364, 2346, 2362, 2364, + 2348, 2362, 2346, 2360, 2362, 2348, 2350, 2358, 2360, 2348, 2350, 2360, + 2352, 2358, 2350, 2356, 2358, 2352, 2354, 2356, 2352, 2372, 2384, 2370, + 2374, 2376, 2372, 2376, 2378, 2372, 2378, 2380, 2372, 2380, 2382, 2372, + 2382, 2384, 2372, 2386, 2370, 2384, 2338, 2370, 2386, 2336, 2370, 2338 + ] + }, + { + "id": "shape1_part3", + "type": "TRIANGLES", + "indices": [ + 122, 123, 124, 123, 125, 124, 124, 125, 126, 125, 127, 126, + 126, 127, 128, 127, 129, 128, 128, 129, 130, 129, 131, 130, + 130, 131, 132, 131, 133, 132, 132, 133, 134, 133, 135, 134, + 134, 135, 136, 135, 137, 136, 136, 137, 138, 137, 139, 138, + 138, 139, 140, 139, 141, 140, 140, 141, 122, 141, 123, 122, + 122, 122, 124, 122, 124, 124, 124, 124, 126, 124, 126, 126, + 126, 126, 128, 126, 128, 128, 128, 128, 130, 128, 130, 130, + 130, 130, 132, 130, 132, 132, 132, 132, 134, 132, 134, 134, + 134, 134, 136, 134, 136, 136, 136, 136, 138, 136, 138, 138, + 138, 138, 140, 138, 140, 140, 140, 140, 122, 140, 122, 122, + 325, 319, 321, 323, 325, 321, 329, 331, 333, 329, 333, 335, + 337, 329, 335, 327, 329, 337, 343, 339, 340, 343, 340, 341, + 657, 658, 659, 658, 514, 659, 659, 514, 660, 514, 512, 660, + 660, 512, 661, 512, 632, 661, 661, 632, 662, 632, 630, 662, + 662, 630, 663, 630, 628, 663, 663, 628, 664, 628, 665, 664, + 664, 665, 666, 665, 667, 666, 666, 667, 657, 667, 658, 657, + 657, 657, 659, 657, 659, 659, 659, 659, 660, 659, 660, 660, + 660, 660, 661, 660, 661, 661, 661, 661, 662, 661, 662, 662, + 662, 662, 663, 662, 663, 663, 663, 663, 664, 663, 664, 664, + 664, 664, 666, 664, 666, 666, 666, 666, 657, 666, 657, 657, + 657, 659, 660, 661, 657, 660, 662, 657, 661, 666, 657, 662, + 664, 666, 662, 664, 662, 663, 1367, 1363, 1365, 1371, 1367, 1369, + 1367, 1361, 1363, 1371, 1361, 1367, 1357, 1359, 1361, 1371, 1357, 1361, + 1355, 1357, 1371, 1381, 1353, 1355, 1379, 1355, 1371, 1379, 1371, 1373, + 1381, 1355, 1379, 1377, 1379, 1373, 1375, 1377, 1373, 1389, 1385, 1387, + 1383, 1385, 1389, 1403, 1395, 1397, 1395, 1391, 1393, 1405, 1395, 1403, + 1405, 1391, 1395, 1403, 1397, 1399, 1401, 1403, 1399, 1413, 1407, 1409, + 1411, 1413, 1409, 1415, 1417, 1419, 1421, 1423, 1419, 1419, 1423, 1425, + 1427, 1439, 1425, 1439, 1419, 1425, 1415, 1419, 1439, 1441, 1447, 1415, + 1441, 1415, 1439, 1437, 1439, 1427, 1443, 1445, 1447, 1443, 1447, 1441, + 1431, 1427, 1429, 1433, 1437, 1427, 1431, 1433, 1427, 1435, 1437, 1433, + 1453, 1455, 1456, 1451, 1453, 1456, 1451, 1456, 1449, 1502, 1457, 1459, + 1500, 1459, 1461, 1459, 1500, 1502, 1498, 1461, 1463, 1498, 1500, 1461, + 1499, 1500, 1498, 1465, 1497, 1498, 1465, 1498, 1463, 1497, 1465, 1467, + 1471, 1497, 1467, 1471, 1467, 1469, 1495, 1497, 1471, 1473, 1492, 1495, + 1473, 1495, 1471, 1492, 1473, 1475, 1493, 1495, 1492, 1479, 1475, 1477, + 1481, 1492, 1475, 1481, 1475, 1479, 1481, 1483, 1492, 1489, 1483, 1485, + 1489, 1485, 1487, 1483, 1491, 1492, 1489, 1491, 1483, 1519, 1529, 1504, + 1520, 1529, 1519, 1527, 1529, 1520, 1525, 1527, 1520, 1520, 1522, 1525, + 1521, 1522, 1520, 1505, 1518, 1504, 1519, 1504, 1518, 1524, 1525, 1522, + 1524, 1522, 1523, 1516, 1518, 1505, 1517, 1518, 1516, 1516, 1505, 1506, + 1513, 1511, 1512, 1515, 1516, 1506, 1508, 1510, 1511, 1508, 1511, 1513, + 1514, 1508, 1513, 1507, 1508, 1514, 1507, 1514, 1515, 1507, 1515, 1506 + ] + }, + { + "id": "shape1_part4", + "type": "TRIANGLES", + "indices": [ + 128, 130, 132, 136, 128, 132, 136, 132, 134, 126, 128, 136, + 138, 140, 124, 126, 138, 124, 122, 124, 140, 136, 138, 126 + ] + }, + { + "id": "shape1_part5", + "type": "TRIANGLES", + "indices": [ + 319, 320, 321, 320, 322, 321, 321, 322, 323, 322, 324, 323, + 323, 324, 325, 324, 326, 325, 325, 326, 319, 326, 320, 319, + 319, 319, 321, 319, 321, 321, 321, 321, 323, 321, 323, 323, + 323, 323, 325, 323, 325, 325, 325, 325, 319, 325, 319, 319, + 324, 322, 320, 326, 324, 320, 327, 328, 329, 328, 330, 329, + 329, 330, 331, 330, 332, 331, 331, 332, 333, 332, 334, 333, + 333, 334, 335, 334, 336, 335, 335, 336, 337, 336, 338, 337, + 337, 338, 327, 338, 328, 327, 327, 327, 329, 327, 329, 329, + 329, 329, 331, 329, 331, 331, 331, 331, 333, 331, 333, 333, + 333, 333, 335, 333, 335, 335, 335, 335, 337, 335, 337, 337, + 337, 337, 327, 337, 327, 327, 339, 328, 340, 328, 338, 340, + 340, 338, 341, 338, 342, 341, 341, 342, 343, 342, 344, 343, + 343, 344, 339, 344, 328, 339, 339, 339, 340, 339, 340, 340, + 340, 340, 341, 340, 341, 341, 341, 341, 343, 341, 343, 343, + 343, 343, 339, 343, 339, 339, 1353, 1354, 1355, 1354, 1356, 1355, + 1355, 1356, 1357, 1356, 1358, 1357, 1357, 1358, 1359, 1358, 1360, 1359, + 1359, 1360, 1361, 1360, 1362, 1361, 1361, 1362, 1363, 1362, 1364, 1363, + 1363, 1364, 1365, 1364, 1366, 1365, 1365, 1366, 1367, 1366, 1368, 1367, + 1367, 1368, 1369, 1368, 1370, 1369, 1369, 1370, 1371, 1370, 1372, 1371, + 1371, 1372, 1373, 1372, 1374, 1373, 1373, 1374, 1375, 1374, 1376, 1375, + 1375, 1376, 1377, 1376, 1378, 1377, 1377, 1378, 1379, 1378, 1380, 1379, + 1379, 1380, 1381, 1380, 1382, 1381, 1381, 1382, 1353, 1382, 1354, 1353, + 1353, 1353, 1355, 1353, 1355, 1355, 1355, 1355, 1357, 1355, 1357, 1357, + 1357, 1357, 1359, 1357, 1359, 1359, 1359, 1359, 1361, 1359, 1361, 1361, + 1361, 1361, 1363, 1361, 1363, 1363, 1363, 1363, 1365, 1363, 1365, 1365, + 1365, 1365, 1367, 1365, 1367, 1367, 1367, 1367, 1369, 1367, 1369, 1369, + 1369, 1369, 1371, 1369, 1371, 1371, 1371, 1371, 1373, 1371, 1373, 1373, + 1373, 1373, 1375, 1373, 1375, 1375, 1375, 1375, 1377, 1375, 1377, 1377, + 1377, 1377, 1379, 1377, 1379, 1379, 1379, 1379, 1381, 1379, 1381, 1381, + 1381, 1381, 1353, 1381, 1353, 1353, 1383, 1384, 1385, 1384, 1386, 1385, + 1385, 1386, 1387, 1386, 1388, 1387, 1387, 1388, 1389, 1388, 1390, 1389, + 1389, 1390, 1383, 1390, 1384, 1383, 1383, 1383, 1385, 1383, 1385, 1385, + 1385, 1385, 1387, 1385, 1387, 1387, 1387, 1387, 1389, 1387, 1389, 1389, + 1389, 1389, 1383, 1389, 1383, 1383, 1391, 1392, 1393, 1392, 1394, 1393, + 1393, 1394, 1395, 1394, 1396, 1395, 1395, 1396, 1397, 1396, 1398, 1397, + 1397, 1398, 1399, 1398, 1400, 1399, 1399, 1400, 1401, 1400, 1402, 1401, + 1401, 1402, 1403, 1402, 1404, 1403, 1403, 1404, 1405, 1404, 1406, 1405, + 1405, 1406, 1391, 1406, 1392, 1391, 1391, 1391, 1393, 1391, 1393, 1393, + 1393, 1393, 1395, 1393, 1395, 1395, 1395, 1395, 1397, 1395, 1397, 1397, + 1397, 1397, 1399, 1397, 1399, 1399, 1399, 1399, 1401, 1399, 1401, 1401, + 1401, 1401, 1403, 1401, 1403, 1403, 1403, 1403, 1405, 1403, 1405, 1405, + 1405, 1405, 1391, 1405, 1391, 1391, 1407, 1408, 1409, 1408, 1410, 1409, + 1409, 1410, 1411, 1410, 1412, 1411, 1411, 1412, 1413, 1412, 1414, 1413, + 1413, 1414, 1407, 1414, 1408, 1407, 1407, 1407, 1409, 1407, 1409, 1409, + 1409, 1409, 1411, 1409, 1411, 1411, 1411, 1411, 1413, 1411, 1413, 1413, + 1413, 1413, 1407, 1413, 1407, 1407, 1415, 1416, 1417, 1416, 1418, 1417, + 1417, 1418, 1419, 1418, 1420, 1419, 1419, 1420, 1421, 1420, 1422, 1421, + 1421, 1422, 1423, 1422, 1424, 1423, 1423, 1424, 1425, 1424, 1426, 1425, + 1425, 1426, 1427, 1426, 1428, 1427, 1427, 1428, 1429, 1428, 1430, 1429, + 1429, 1430, 1431, 1430, 1432, 1431, 1431, 1432, 1433, 1432, 1434, 1433, + 1433, 1434, 1435, 1434, 1436, 1435, 1435, 1436, 1437, 1436, 1438, 1437, + 1437, 1438, 1439, 1438, 1440, 1439, 1439, 1440, 1441, 1440, 1442, 1441, + 1441, 1442, 1443, 1442, 1444, 1443, 1443, 1444, 1445, 1444, 1446, 1445, + 1445, 1446, 1447, 1446, 1448, 1447, 1447, 1448, 1415, 1448, 1416, 1415, + 1415, 1415, 1417, 1415, 1417, 1417, 1417, 1417, 1419, 1417, 1419, 1419, + 1419, 1419, 1421, 1419, 1421, 1421, 1421, 1421, 1423, 1421, 1423, 1423, + 1423, 1423, 1425, 1423, 1425, 1425, 1425, 1425, 1427, 1425, 1427, 1427, + 1427, 1427, 1429, 1427, 1429, 1429, 1429, 1429, 1431, 1429, 1431, 1431, + 1431, 1431, 1433, 1431, 1433, 1433, 1433, 1433, 1435, 1433, 1435, 1435, + 1435, 1435, 1437, 1435, 1437, 1437, 1437, 1437, 1439, 1437, 1439, 1439, + 1439, 1439, 1441, 1439, 1441, 1441, 1441, 1441, 1443, 1441, 1443, 1443, + 1443, 1443, 1445, 1443, 1445, 1445, 1445, 1445, 1447, 1445, 1447, 1447, + 1447, 1447, 1415, 1447, 1415, 1415, 1449, 1450, 1451, 1450, 1452, 1451, + 1451, 1452, 1453, 1452, 1454, 1453, 1453, 1454, 1455, 1454, 1367, 1455, + 1455, 1367, 1456, 1367, 1369, 1456, 1456, 1369, 1449, 1369, 1450, 1449, + 1449, 1449, 1451, 1449, 1451, 1451, 1451, 1451, 1453, 1451, 1453, 1453, + 1453, 1453, 1455, 1453, 1455, 1455, 1455, 1455, 1456, 1455, 1456, 1456, + 1456, 1456, 1449, 1456, 1449, 1449, 1450, 1369, 1367, 1450, 1367, 1454, + 1450, 1454, 1452, 1457, 1458, 1459, 1458, 1460, 1459, 1459, 1460, 1461, + 1460, 1462, 1461, 1461, 1462, 1463, 1462, 1464, 1463, 1463, 1464, 1465, + 1464, 1466, 1465, 1465, 1466, 1467, 1466, 1468, 1467, 1467, 1468, 1469, + 1468, 1470, 1469, 1469, 1470, 1471, 1470, 1472, 1471, 1471, 1472, 1473, + 1472, 1474, 1473, 1473, 1474, 1475, 1474, 1476, 1475, 1475, 1476, 1477, + 1476, 1478, 1477, 1477, 1478, 1479, 1478, 1480, 1479, 1479, 1480, 1481, + 1480, 1482, 1481, 1481, 1482, 1483, 1482, 1484, 1483, 1483, 1484, 1485, + 1484, 1486, 1485, 1485, 1486, 1487, 1486, 1488, 1487, 1487, 1488, 1489, + 1488, 1490, 1489, 1489, 1490, 1491, 1490, 1376, 1491, 1491, 1376, 1492, + 1376, 1374, 1492, 1492, 1374, 1493, 1374, 1494, 1493, 1493, 1494, 1495, + 1494, 1496, 1495, 1495, 1496, 1497, 1496, 1370, 1497, 1497, 1370, 1498, + 1370, 1368, 1498, 1498, 1368, 1499, 1368, 1366, 1499, 1499, 1366, 1500, + 1366, 1501, 1500, 1500, 1501, 1502, 1501, 1503, 1502, 1502, 1503, 1457, + 1503, 1458, 1457, 1457, 1457, 1459, 1457, 1459, 1459, 1459, 1459, 1461, + 1459, 1461, 1461, 1461, 1461, 1463, 1461, 1463, 1463, 1463, 1463, 1465, + 1463, 1465, 1465, 1465, 1465, 1467, 1465, 1467, 1467, 1467, 1467, 1469, + 1467, 1469, 1469, 1469, 1469, 1471, 1469, 1471, 1471, 1471, 1471, 1473, + 1471, 1473, 1473, 1473, 1473, 1475, 1473, 1475, 1475, 1475, 1475, 1477, + 1475, 1477, 1477, 1477, 1477, 1479, 1477, 1479, 1479, 1479, 1479, 1481, + 1479, 1481, 1481, 1481, 1481, 1483, 1481, 1483, 1483, 1483, 1483, 1485, + 1483, 1485, 1485, 1485, 1485, 1487, 1485, 1487, 1487, 1487, 1487, 1489, + 1487, 1489, 1489, 1489, 1489, 1491, 1489, 1491, 1491, 1491, 1491, 1492, + 1491, 1492, 1492, 1492, 1492, 1493, 1492, 1493, 1493, 1493, 1493, 1495, + 1493, 1495, 1495, 1495, 1495, 1497, 1495, 1497, 1497, 1497, 1497, 1498, + 1497, 1498, 1498, 1498, 1498, 1499, 1498, 1499, 1499, 1499, 1499, 1500, + 1499, 1500, 1500, 1500, 1500, 1502, 1500, 1502, 1502, 1502, 1502, 1457, + 1502, 1457, 1457, 1504, 1360, 1505, 1360, 1358, 1505, 1505, 1358, 1506, + 1358, 1356, 1506, 1506, 1356, 1507, 1356, 1354, 1507, 1507, 1354, 1508, + 1354, 1509, 1508, 1508, 1509, 1510, 1509, 1442, 1510, 1510, 1442, 1511, + 1442, 1440, 1511, 1511, 1440, 1512, 1440, 1438, 1512, 1512, 1438, 1513, + 1438, 1436, 1513, 1513, 1436, 1514, 1436, 1434, 1514, 1514, 1434, 1515, + 1434, 1432, 1515, 1515, 1432, 1516, 1432, 1430, 1516, 1516, 1430, 1517, + 1430, 1428, 1517, 1517, 1428, 1518, 1428, 1426, 1518, 1518, 1426, 1519, + 1426, 1424, 1519, 1519, 1424, 1520, 1424, 1422, 1520, 1520, 1422, 1521, + 1422, 1420, 1521, 1521, 1420, 1522, 1420, 1418, 1522, 1522, 1418, 1523, + 1418, 1416, 1523, 1523, 1416, 1524, 1416, 1448, 1524, 1524, 1448, 1525, + 1448, 1526, 1525, 1525, 1526, 1527, 1526, 1528, 1527, 1527, 1528, 1529, + 1528, 1530, 1529, 1529, 1530, 1504, 1530, 1360, 1504, 1504, 1504, 1505, + 1504, 1505, 1505, 1505, 1505, 1506, 1505, 1506, 1506, 1506, 1506, 1507, + 1506, 1507, 1507, 1507, 1507, 1508, 1507, 1508, 1508, 1508, 1508, 1510, + 1508, 1510, 1510, 1510, 1510, 1511, 1510, 1511, 1511, 1511, 1511, 1512, + 1511, 1512, 1512, 1512, 1512, 1513, 1512, 1513, 1513, 1513, 1513, 1514, + 1513, 1514, 1514, 1514, 1514, 1515, 1514, 1515, 1515, 1515, 1515, 1516, + 1515, 1516, 1516, 1516, 1516, 1517, 1516, 1517, 1517, 1517, 1517, 1518, + 1517, 1518, 1518, 1518, 1518, 1519, 1518, 1519, 1519, 1519, 1519, 1520, + 1519, 1520, 1520, 1520, 1520, 1521, 1520, 1521, 1521, 1521, 1521, 1522, + 1521, 1522, 1522, 1522, 1522, 1523, 1522, 1523, 1523, 1523, 1523, 1524, + 1523, 1524, 1524, 1524, 1524, 1525, 1524, 1525, 1525, 1525, 1525, 1527, + 1525, 1527, 1527, 1527, 1527, 1529, 1527, 1529, 1529, 1529, 1529, 1504, + 1529, 1504, 1504 + ] + }, + { + "id": "shape1_part6", + "type": "TRIANGLES", + "indices": [ + 2195, 2196, 2197, 2196, 2198, 2197, 2197, 2198, 2199, 2198, 2200, 2199, + 2199, 2200, 2201, 2200, 2202, 2201, 2201, 2202, 1591, 2202, 1592, 1591, + 1591, 1592, 1589, 1592, 1590, 1589, 1589, 1590, 1587, 1590, 1588, 1587, + 1587, 1588, 1585, 1588, 1586, 1585, 1585, 1586, 2203, 1586, 2204, 2203, + 2203, 2204, 2195, 2204, 2196, 2195, 2195, 2195, 2197, 2195, 2197, 2197, + 2197, 2197, 2199, 2197, 2199, 2199, 2199, 2199, 2201, 2199, 2201, 2201, + 2201, 2201, 1591, 2201, 1591, 1591, 1591, 1591, 1589, 1591, 1589, 1589, + 1589, 1589, 1587, 1589, 1587, 1587, 1587, 1587, 1585, 1587, 1585, 1585, + 1585, 1585, 2203, 1585, 2203, 2203, 2203, 2203, 2195, 2203, 2195, 2195 + ] + }, + { + "id": "shape1_part7", + "type": "TRIANGLES", + "indices": [ + 1585, 2203, 2195, 1587, 1585, 2195, 1589, 1587, 2195, 2201, 1589, 2195, + 2197, 2201, 2195, 2199, 2201, 2197, 1591, 1589, 2201 + ] + }, + { + "id": "shape1_part8", + "type": "TRIANGLES", + "indices": [ + 2388, 2389, 2390, 2389, 2391, 2390, 2390, 2391, 2392, 2391, 2393, 2392, + 2392, 2393, 2394, 2393, 2395, 2394, 2394, 2395, 2396, 2395, 2397, 2396, + 2396, 2397, 2398, 2397, 2399, 2398, 2398, 2399, 2400, 2399, 2401, 2400, + 2400, 2401, 2388, 2401, 2389, 2388, 2402, 2388, 2403, 2388, 2390, 2403, + 2403, 2390, 2404, 2390, 2392, 2404, 2404, 2392, 2394, 2392, 2394, 2394, + 2394, 2394, 2405, 2394, 2396, 2405, 2405, 2396, 2406, 2396, 2398, 2406, + 2406, 2398, 2407, 2398, 2400, 2407, 2407, 2400, 2402, 2400, 2388, 2402, + 2395, 2393, 2389, 2399, 2395, 2389, 2401, 2399, 2389, 2408, 2409, 2394, + 2409, 2395, 2394, 2394, 2395, 2392, 2395, 2393, 2392, 2392, 2393, 2388, + 2393, 2389, 2388, 2388, 2389, 2400, 2389, 2401, 2400, 2400, 2401, 2410, + 2401, 2411, 2410, 2410, 2411, 2412, 2411, 2413, 2412, 2412, 2413, 2414, + 2413, 2415, 2414, 2414, 2415, 2416, 2415, 2417, 2416, 2416, 2417, 2418, + 2417, 2419, 2418, 2418, 2419, 2420, 2419, 2421, 2420, 2420, 2421, 2422, + 2421, 2423, 2422, 2422, 2423, 2424, 2423, 2425, 2424, 2424, 2425, 2426, + 2425, 2427, 2426, 2426, 2427, 2428, 2427, 2429, 2428, 2428, 2429, 2430, + 2429, 2431, 2430, 2430, 2431, 2432, 2431, 2433, 2432, 2432, 2433, 2434, + 2433, 2435, 2434, 2434, 2435, 2436, 2435, 2437, 2436, 2436, 2437, 2438, + 2437, 2439, 2438, 2438, 2439, 2440, 2439, 2441, 2440, 2440, 2441, 2442, + 2441, 2443, 2442, 2442, 2443, 2444, 2443, 2445, 2444, 2444, 2445, 2446, + 2445, 2447, 2446, 2446, 2447, 2448, 2447, 2449, 2448, 2448, 2449, 2450, + 2449, 2451, 2450, 2450, 2451, 2452, 2451, 2453, 2452, 2452, 2453, 2454, + 2453, 2455, 2454, 2454, 2455, 2456, 2455, 2457, 2456, 2456, 2457, 2458, + 2457, 2459, 2458, 2458, 2459, 2460, 2459, 2461, 2460, 2460, 2461, 2462, + 2461, 2463, 2462, 2462, 2463, 2464, 2463, 2465, 2464, 2464, 2465, 2466, + 2465, 2467, 2466, 2466, 2467, 2468, 2467, 2469, 2468, 2468, 2469, 2470, + 2469, 2471, 2470, 2470, 2471, 2472, 2471, 2473, 2472, 2472, 2473, 2474, + 2473, 2475, 2474, 2474, 2475, 2476, 2475, 2477, 2476, 2476, 2477, 2478, + 2477, 2479, 2478, 2478, 2479, 2480, 2479, 2481, 2480, 2480, 2481, 2482, + 2481, 2483, 2482, 2482, 2483, 2484, 2483, 2485, 2484, 2484, 2485, 2486, + 2485, 2487, 2486, 2486, 2487, 2488, 2487, 2489, 2488, 2488, 2489, 2490, + 2489, 2491, 2490, 2490, 2491, 2492, 2491, 2493, 2492, 2492, 2493, 2494, + 2493, 2495, 2494, 2494, 2495, 2496, 2495, 2497, 2496, 2496, 2497, 2498, + 2497, 2499, 2498, 2498, 2499, 2500, 2499, 2501, 2500, 2500, 2501, 2408, + 2501, 2409, 2408, 2408, 2408, 2394, 2408, 2394, 2394, 2394, 2394, 2392, + 2394, 2392, 2392, 2392, 2392, 2388, 2392, 2388, 2388, 2388, 2388, 2400, + 2388, 2400, 2400, 2400, 2400, 2410, 2400, 2410, 2410, 2410, 2410, 2412, + 2410, 2412, 2412, 2412, 2412, 2414, 2412, 2414, 2414, 2414, 2414, 2416, + 2414, 2416, 2416, 2416, 2416, 2418, 2416, 2418, 2418, 2418, 2418, 2420, + 2418, 2420, 2420, 2420, 2420, 2422, 2420, 2422, 2422, 2422, 2422, 2424, + 2422, 2424, 2424, 2424, 2424, 2426, 2424, 2426, 2426, 2426, 2426, 2428, + 2426, 2428, 2428, 2428, 2428, 2430, 2428, 2430, 2430, 2430, 2430, 2432, + 2430, 2432, 2432, 2432, 2432, 2434, 2432, 2434, 2434, 2434, 2434, 2436, + 2434, 2436, 2436, 2436, 2436, 2438, 2436, 2438, 2438, 2438, 2438, 2440, + 2438, 2440, 2440, 2440, 2440, 2442, 2440, 2442, 2442, 2442, 2442, 2444, + 2442, 2444, 2444, 2444, 2444, 2446, 2444, 2446, 2446, 2446, 2446, 2448, + 2446, 2448, 2448, 2448, 2448, 2450, 2448, 2450, 2450, 2450, 2450, 2452, + 2450, 2452, 2452, 2452, 2452, 2454, 2452, 2454, 2454, 2454, 2454, 2456, + 2454, 2456, 2456, 2456, 2456, 2458, 2456, 2458, 2458, 2458, 2458, 2460, + 2458, 2460, 2460, 2460, 2460, 2462, 2460, 2462, 2462, 2462, 2462, 2464, + 2462, 2464, 2464, 2464, 2464, 2466, 2464, 2466, 2466, 2466, 2466, 2468, + 2466, 2468, 2468, 2468, 2468, 2470, 2468, 2470, 2470, 2470, 2470, 2472, + 2470, 2472, 2472, 2472, 2472, 2474, 2472, 2474, 2474, 2474, 2474, 2476, + 2474, 2476, 2476, 2476, 2476, 2478, 2476, 2478, 2478, 2478, 2478, 2480, + 2478, 2480, 2480, 2480, 2480, 2482, 2480, 2482, 2482, 2482, 2482, 2484, + 2482, 2484, 2484, 2484, 2484, 2486, 2484, 2486, 2486, 2486, 2486, 2488, + 2486, 2488, 2488, 2488, 2488, 2490, 2488, 2490, 2490, 2490, 2490, 2492, + 2490, 2492, 2492, 2492, 2492, 2494, 2492, 2494, 2494, 2494, 2494, 2496, + 2494, 2496, 2496, 2496, 2496, 2498, 2496, 2498, 2498, 2498, 2498, 2500, + 2498, 2500, 2500, 2500, 2500, 2408, 2500, 2408, 2408, 2501, 2499, 2497, + 2497, 2495, 2493, 2493, 2491, 2489, 2489, 2487, 2485, 2485, 2483, 2481, + 2485, 2481, 2479, 2479, 2477, 2475, 2475, 2473, 2471, 2475, 2471, 2469, + 2479, 2475, 2469, 2485, 2479, 2469, 2489, 2485, 2469, 2467, 2465, 2463, + 2463, 2461, 2459, 2467, 2463, 2459, 2459, 2457, 2455, 2467, 2459, 2455, + 2467, 2455, 2453, 2467, 2453, 2451, 2467, 2451, 2449, 2469, 2467, 2449, + 2489, 2469, 2449, 2493, 2489, 2449, 2497, 2493, 2449, 2501, 2497, 2449, + 2409, 2501, 2449, 2449, 2447, 2445, 2449, 2445, 2443, 2449, 2443, 2441, + 2449, 2441, 2439, 2449, 2439, 2437, 2449, 2437, 2435, 2435, 2433, 2431, + 2449, 2435, 2431, 2449, 2431, 2429, 2449, 2429, 2427, 2449, 2427, 2425, + 2423, 2421, 2419, 2425, 2423, 2419, 2425, 2419, 2417, 2425, 2417, 2415, + 2425, 2415, 2413, 2425, 2413, 2411, 2425, 2411, 2401, 2425, 2401, 2389, + 2449, 2425, 2389, 2449, 2389, 2393, 2409, 2449, 2393, 2409, 2393, 2395 + ] + }, + { + "id": "shape1_part9", + "type": "TRIANGLES", + "indices": [ + 2406, 2407, 2402, 2403, 2406, 2402, 2405, 2406, 2403, 2405, 2403, 2404, + 2394, 2405, 2404, 2448, 2442, 2444, 2448, 2444, 2446, 2448, 2440, 2442, + 2448, 2468, 2440, 2466, 2468, 2448, 2466, 2448, 2450, 2470, 2440, 2468, + 2472, 2440, 2470, 2474, 2438, 2440, 2472, 2474, 2440, 2464, 2466, 2450, + 2476, 2438, 2474, 2478, 2436, 2438, 2476, 2478, 2438, 2458, 2462, 2450, + 2464, 2450, 2462, 2480, 2436, 2478, 2450, 2452, 2458, 2460, 2462, 2458, + 2482, 2436, 2480, 2454, 2458, 2452, 2484, 2436, 2482, 2434, 2436, 2484, + 2430, 2432, 2434, 2486, 2434, 2484, 2456, 2458, 2454, 2488, 2434, 2486, + 2388, 2428, 2430, 2490, 2434, 2488, 2492, 2430, 2434, 2490, 2492, 2434, + 2392, 2388, 2430, 2492, 2392, 2430, 2494, 2392, 2492, 2496, 2392, 2494, + 2388, 2426, 2428, 2424, 2426, 2388, 2424, 2388, 2422, 2422, 2388, 2420, + 2400, 2410, 2412, 2400, 2412, 2414, 2400, 2414, 2416, 2498, 2394, 2392, + 2400, 2416, 2418, 2400, 2418, 2388, 2388, 2418, 2420, 2498, 2392, 2496, + 2500, 2394, 2498, 2408, 2394, 2500 + ] + }, + { + "id": "shape2_part1", + "type": "TRIANGLES", + "indices": [ + 2502, 2503, 2504, 2503, 2505, 2504, 2504, 2505, 2506, 2505, 2507, 2506, + 2506, 2507, 2508, 2507, 2509, 2508, 2507, 2505, 2509, 2505, 2503, 2509, + 2509, 2503, 2508, 2503, 2502, 2508, 2508, 2502, 2506, 2502, 2504, 2506, + 2510, 2511, 2512, 2511, 2513, 2512, 2512, 2513, 2514, 2513, 2515, 2514, + 2514, 2515, 2516, 2515, 2517, 2516, 2515, 2513, 2517, 2513, 2511, 2517, + 2517, 2511, 2516, 2511, 2510, 2516, 2516, 2510, 2514, 2510, 2512, 2514, + 2518, 2519, 2520, 2519, 2521, 2520, 2520, 2521, 2522, 2521, 2523, 2522, + 2522, 2523, 2524, 2523, 2525, 2524, 2523, 2521, 2525, 2521, 2519, 2525, + 2525, 2519, 2524, 2519, 2518, 2524, 2524, 2518, 2522, 2518, 2520, 2522, + 2526, 2527, 2528, 2527, 2529, 2528, 2528, 2529, 2530, 2529, 2531, 2530, + 2530, 2531, 2532, 2531, 2533, 2532, 2531, 2529, 2533, 2529, 2527, 2533, + 2533, 2527, 2532, 2527, 2526, 2532, 2532, 2526, 2530, 2526, 2528, 2530, + 2534, 2535, 2536, 2535, 2537, 2536, 2536, 2537, 2538, 2537, 2539, 2538, + 2538, 2539, 2540, 2539, 2541, 2540, 2539, 2537, 2541, 2537, 2535, 2541, + 2541, 2535, 2540, 2535, 2534, 2540, 2540, 2534, 2538, 2534, 2536, 2538, + 2542, 2543, 2544, 2543, 2545, 2544, 2544, 2545, 2546, 2545, 2547, 2546, + 2546, 2547, 2548, 2547, 2549, 2548, 2547, 2545, 2549, 2545, 2543, 2549, + 2549, 2543, 2548, 2543, 2542, 2548, 2548, 2542, 2546, 2542, 2544, 2546, + 2550, 2551, 2552, 2551, 2553, 2552, 2552, 2553, 2554, 2553, 2555, 2554, + 2554, 2555, 2556, 2555, 2557, 2556, 2555, 2553, 2557, 2553, 2551, 2557, + 2557, 2551, 2556, 2551, 2550, 2556, 2556, 2550, 2554, 2550, 2552, 2554, + 2558, 2559, 2560, 2559, 2561, 2560, 2560, 2561, 2562, 2561, 2563, 2562, + 2562, 2563, 2564, 2563, 2565, 2564, 2563, 2561, 2565, 2561, 2559, 2565, + 2565, 2559, 2564, 2559, 2558, 2564, 2564, 2558, 2562, 2558, 2560, 2562, + 2566, 2567, 2568, 2567, 2569, 2568, 2568, 2569, 2570, 2569, 2571, 2570, + 2570, 2571, 2572, 2571, 2573, 2572, 2571, 2569, 2573, 2569, 2567, 2573, + 2573, 2567, 2572, 2567, 2566, 2572, 2572, 2566, 2570, 2566, 2568, 2570, + 2574, 2575, 2576, 2575, 2577, 2576, 2576, 2577, 2578, 2577, 2579, 2578, + 2578, 2579, 2580, 2579, 2581, 2580, 2579, 2577, 2581, 2577, 2575, 2581, + 2581, 2575, 2580, 2575, 2574, 2580, 2580, 2574, 2578, 2574, 2576, 2578, + 2582, 2583, 2584, 2583, 2585, 2584, 2584, 2585, 2586, 2585, 2587, 2586, + 2586, 2587, 2588, 2587, 2589, 2588, 2587, 2585, 2589, 2585, 2583, 2589, + 2589, 2583, 2588, 2583, 2582, 2588, 2588, 2582, 2586, 2582, 2584, 2586, + 2590, 2591, 2592, 2591, 2593, 2592, 2592, 2593, 2594, 2593, 2595, 2594, + 2594, 2595, 2596, 2595, 2597, 2596, 2595, 2593, 2597, 2593, 2591, 2597, + 2597, 2591, 2596, 2591, 2590, 2596, 2596, 2590, 2594, 2590, 2592, 2594 + ] + } + ] + } + ], + "materials": [ + { + "id": "ENTRANCE_DEFAULT_0", + "ambient": [ 0.101961, 0.000000, 0.000000], + "diffuse": [ 0.101961, 0.000000, 0.000000], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "BUILDING_DEFAULT_0", + "ambient": [ 0.501961, 0.450980, 0.274510], + "diffuse": [ 0.501961, 0.450980, 0.274510], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "ROOF_DEFAULT_0", + "ambient": [ 0.400000, 0.000000, 0.000000], + "diffuse": [ 0.400000, 0.000000, 0.000000], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "MAT_0_0", + "ambient": [ 0.196078, 0.196078, 0.196078], + "diffuse": [ 0.196078, 0.196078, 0.196078], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "MAT_1_0", + "ambient": [ 0.235294, 0.215686, 0.215686], + "diffuse": [ 0.235294, 0.215686, 0.215686], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "MAT_2_0", + "ambient": [ 0.470588, 0.470588, 0.470588], + "diffuse": [ 0.470588, 0.470588, 0.470588], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "MAT_3_0", + "ambient": [ 0.333333, 0.254902, 0.156863], + "diffuse": [ 0.333333, 0.254902, 0.156863], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "MAT_4_0", + "ambient": [ 0.149020, 0.149020, 0.149020], + "diffuse": [ 0.149020, 0.149020, 0.149020], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "GLASS_0", + "ambient": [ 0.450980, 0.450980, 0.450980], + "diffuse": [ 0.450980, 0.450980, 0.450980], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + }, + { + "id": "GLASS_ROOF_0", + "ambient": [ 0.450980, 0.450980, 0.450980], + "diffuse": [ 0.450980, 0.450980, 0.450980], + "specular": [ 0.200000, 0.200000, 0.200000], + "shininess": 20.000000 + } + ], + "nodes": [ + { + "id": "test_root", + "children": [ + { + "id": "Building", + "parts": [ + { + "meshpartid": "shape1_part1", + "materialid": "BUILDING_DEFAULT_0" + }, + { + "meshpartid": "shape1_part2", + "materialid": "ROOF_DEFAULT_0" + }, + { + "meshpartid": "shape1_part3", + "materialid": "MAT_0_0" + }, + { + "meshpartid": "shape1_part4", + "materialid": "MAT_1_0" + }, + { + "meshpartid": "shape1_part5", + "materialid": "MAT_2_0" + }, + { + "meshpartid": "shape1_part6", + "materialid": "MAT_3_0" + }, + { + "meshpartid": "shape1_part7", + "materialid": "MAT_4_0" + }, + { + "meshpartid": "shape1_part8", + "materialid": "GLASS_0" + }, + { + "meshpartid": "shape1_part9", + "materialid": "GLASS_ROOF_0" + } + ] + }, + { + "id": "BuildingEntrance", + "parts": [ + { + "meshpartid": "shape2_part1", + "materialid": "ENTRANCE_DEFAULT_0" + } + ] + } + ] + } + ], + "animations": [] +} \ No newline at end of file diff --git a/data/g3d/tree.png b/data/g3d/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..12950b1100ca7290dcf6cfa688edf649376c30e4 GIT binary patch literal 6257 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 bWbgk0gCSXgAEpX-00000NkvXXu0mjfw8QtI literal 0 HcmV?d00001 diff --git a/data/g3d/treeA.g3dj b/data/g3d/treeA.g3dj new file mode 100644 index 00000000..3c084d3c --- /dev/null +++ b/data/g3d/treeA.g3dj @@ -0,0 +1,177 @@ +{ + "version": [ 0, 1], + "id": "", + "meshes": [ + { + "attributes": ["POSITION", "NORMAL", "TEXCOORD0"], + "vertices": [ + -0.003717, -0.043092, 0.000001, 0.000000, -1.000000, 0.000000, 0.000000, 0.000000, + -0.003717, -0.043092, -0.019798, 0.000000, -0.609973, -0.792383, 0.000000, 0.000000, + 0.013430, -0.043092, -0.009898, 0.686239, -0.609973, -0.396191, 0.000000, 0.000000, + -0.003717, 0.527242, 0.000001, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, + 0.013430, 0.527242, -0.009898, 0.686239, 0.609973, -0.396191, 0.000000, 0.000000, + -0.003717, 0.527242, -0.019798, 0.000000, 0.609973, -0.792383, 0.000000, 0.000000, + 0.013430, -0.043092, 0.009901, 0.686239, -0.609973, 0.396191, 0.000000, 0.000000, + 0.013430, 0.527242, 0.009901, 0.686239, 0.609973, 0.396191, 0.000000, 0.000000, + -0.003717, -0.043092, 0.019801, 0.000000, -0.609973, 0.792383, 0.000000, 0.000000, + -0.003717, 0.527242, 0.019801, 0.000000, 0.609973, 0.792383, 0.000000, 0.000000, + -0.020865, -0.043092, 0.009901, -0.686239, -0.609973, 0.396191, 0.000000, 0.000000, + -0.020865, 0.527242, 0.009901, -0.686239, 0.609973, 0.396191, 0.000000, 0.000000, + -0.020865, -0.043092, -0.009898, -0.686239, -0.609973, -0.396191, 0.000000, 0.000000, + -0.020865, 0.527242, -0.009898, -0.686239, 0.609973, -0.396191, 0.000000, 0.000000, + -0.000052, 1.708732, 0.000001, 0.000000, 1.000000, 0.000000, 0.627643, 0.963260, + -0.056858, 1.692897, -0.056805, -0.359325, 0.861232, -0.359325, 0.811107, 0.943917, + -0.080388, 1.692897, 0.000001, -0.508194, 0.861232, 0.000000, 0.930977, 0.971962, + -0.112293, 1.619116, -0.112239, -0.584552, 0.562639, -0.584552, 0.871491, 0.884983, + -0.158784, 1.619116, 0.000001, -0.826655, 0.562639, 0.000000, 1.012361, 0.910828, + -0.176420, 1.422079, -0.176367, -0.675863, 0.293832, -0.675863, 0.903795, 0.728324, + -0.249474, 1.422079, 0.000001, -0.955840, 0.293832, 0.000000, 1.035246, 0.751852, + -0.210746, 1.159339, -0.210693, -0.704306, 0.088870, -0.704306, 0.922129, 0.451029, + -0.298019, 1.159339, 0.000001, -0.996033, 0.088870, 0.000000, 1.045340, 0.473093, + -0.210605, 0.903175, -0.210552, -0.705252, -0.072024, -0.705252, 0.936767, 0.254108, + -0.297820, 0.903175, 0.000001, -0.997375, -0.072024, 0.000000, 1.052424, 0.274946, + -0.180964, 0.617981, -0.180911, -0.685263, -0.246529, -0.685263, 0.956801, 0.142573, + -0.255900, 0.617981, 0.000001, -0.969115, -0.246529, 0.000000, 1.061122, 0.161660, + -0.116291, 0.378825, -0.116238, -0.610279, -0.505051, -0.610279, 0.991689, 0.079506, + -0.164439, 0.378825, 0.000001, -0.863063, -0.505051, 0.000000, 1.074527, 0.095355, + -0.059153, 0.290116, -0.059100, -0.407514, -0.817194, -0.407544, 1.038003, 0.052079, + -0.083634, 0.290116, 0.000001, -0.576312, -0.817194, 0.000000, 1.090933, 0.063214, + -0.083634, 0.290116, 0.000001, -0.576312, -0.817194, 0.000000, 0.090933, 0.063214, + -0.059153, 0.290116, -0.059100, -0.407514, -0.817194, -0.407544, 0.038003, 0.052079, + -0.000125, 0.265210, -0.000071, -0.000244, -0.999969, -0.000244, 0.127500, 0.036749, + -0.000051, 0.290116, -0.083580, 0.000000, -0.817194, -0.576312, 0.994047, 0.033372, + -0.000125, 0.265210, -0.000071, -0.000244, -0.999969, -0.000244, 1.127500, 0.036749, + -0.000051, 0.378825, -0.164386, 0.000000, -0.505051, -0.863063, 0.893772, 0.053663, + -0.000052, 0.617981, -0.255847, 0.000000, -0.246529, -0.969115, 0.836458, 0.114704, + -0.000052, 0.903175, -0.297766, 0.000000, -0.072024, -0.997375, 0.812221, 0.226047, + -0.000052, 1.159339, -0.297966, 0.000000, 0.088870, -0.996033, 0.797565, 0.423137, + -0.000052, 1.422079, -0.249421, 0.000000, 0.293832, -0.955840, 0.781975, 0.700922, + -0.000052, 1.619116, -0.158731, 0.000000, 0.562639, -0.826655, 0.759783, 0.858997, + -0.000052, 1.692897, -0.080335, 0.000000, 0.861232, -0.508194, 0.728165, 0.921879, + 0.056754, 1.692897, -0.056805, 0.359325, 0.861232, -0.359325, 0.652361, 0.910987, + 0.112189, 1.619116, -0.112239, 0.584552, 0.562639, -0.584552, 0.659906, 0.845090, + 0.176316, 1.422079, -0.176367, 0.675863, 0.293832, -0.675863, 0.665734, 0.684958, + 0.210643, 1.159339, -0.210693, 0.704306, 0.088870, -0.704306, 0.670277, 0.405750, + 0.210502, 0.903175, -0.210552, 0.705252, -0.072024, -0.705252, 0.675032, 0.207335, + 0.180860, 0.617981, -0.180910, 0.685263, -0.246529, -0.685263, 0.684415, 0.093825, + 0.116188, 0.378825, -0.116237, 0.610279, -0.505051, -0.610279, 0.723612, 0.027920, + 0.059050, 0.290116, -0.059099, 0.407483, -0.817255, -0.407422, 1.018456, 0.011649, + 0.059050, 0.290116, -0.059099, 0.407483, -0.817255, -0.407422, 0.018456, 0.011649, + 0.083530, 0.290116, 0.000002, 0.576159, -0.817316, 0.000000, 0.267608, 0.018648, + 0.164335, 0.378825, 0.000002, 0.863063, -0.505051, 0.000000, 0.457225, 0.035136, + 0.255796, 0.617981, 0.000002, 0.969115, -0.246529, 0.000000, 0.515690, 0.098717, + 0.297716, 0.903175, 0.000002, 0.997375, -0.072024, 0.000000, 0.532803, 0.211513, + 0.297915, 1.159339, 0.000002, 0.996033, 0.088870, 0.000000, 0.541872, 0.409545, + 0.249370, 1.422079, 0.000002, 0.955840, 0.293832, 0.000000, 0.550746, 0.688375, + 0.158680, 1.619116, 0.000002, 0.826655, 0.562639, 0.000000, 0.562378, 0.848006, + 0.080284, 1.692897, 0.000001, 0.508194, 0.861232, 0.000000, 0.577714, 0.913236, + 0.056754, 1.692897, 0.056808, 0.359325, 0.861232, 0.359325, 0.500528, 0.928224, + 0.112188, 1.619116, 0.112242, 0.584552, 0.562670, 0.584552, 0.459880, 0.866817, + 0.176316, 1.422079, 0.176370, 0.675863, 0.293832, 0.675863, 0.433163, 0.709519, + 0.210642, 1.159339, 0.210696, 0.704306, 0.088870, 0.704306, 0.415507, 0.432148, + 0.210501, 0.903175, 0.210555, 0.705252, -0.072024, 0.705252, 0.399773, 0.235351, + 0.180860, 0.617981, 0.180914, 0.685263, -0.246529, 0.685263, 0.375517, 0.124299, + 0.116187, 0.378825, 0.116241, 0.610279, -0.505051, 0.610279, 0.325269, 0.063109, + 0.059049, 0.290116, 0.059103, 0.407361, -0.817347, 0.407392, 0.248452, 0.040330, + -0.000053, 0.290116, 0.083583, 0.000000, -0.817316, 0.576159, 0.199939, 0.056802, + -0.000053, 0.378825, 0.164389, 0.000000, -0.505051, 0.863063, 0.234895, 0.086200, + -0.000053, 0.617981, 0.255850, 0.000000, -0.246529, 0.969115, 0.262269, 0.150492, + -0.000052, 0.903175, 0.297769, 0.000000, -0.072024, 0.997375, 0.278892, 0.262611, + -0.000052, 1.159339, 0.297968, 0.000000, 0.088870, 0.996033, 0.291619, 0.459894, + -0.000052, 1.422079, 0.249424, 0.000000, 0.293832, 0.955840, 0.308400, 0.737559, + -0.000052, 1.619116, 0.158734, 0.000000, 0.562670, 0.826655, 0.340691, 0.894603, + -0.000052, 1.692897, 0.080338, 0.000000, 0.861232, 0.508194, 0.411564, 0.953109, + -0.056858, 1.692897, 0.056808, -0.359325, 0.861232, 0.359325, 0.247502, 0.980115, + -0.112293, 1.619116, 0.112242, -0.584552, 0.562670, 0.584552, 0.186319, 0.915857, + -0.176420, 1.422079, 0.176369, -0.675863, 0.293832, 0.675863, 0.173739, 0.755927, + -0.210747, 1.159339, 0.210696, -0.704306, 0.088870, 0.704306, 0.168491, 0.476740, + -0.210606, 0.903175, 0.210555, -0.705252, -0.072024, 0.705252, 0.164886, 0.278291, + -0.180964, 0.617981, 0.180913, -0.685263, -0.246529, 0.685263, 0.160531, 0.164632, + -0.116292, 0.378825, 0.116240, -0.610279, -0.505051, 0.610279, 0.153922, 0.097744, + -0.059154, 0.290116, 0.059102, -0.407453, -0.817255, 0.407483, 0.145909, 0.064880, + -0.164439, 0.378825, 0.000001, -0.863063, -0.505051, 0.000000, 0.074527, 0.095355, + -0.255900, 0.617981, 0.000001, -0.969115, -0.246529, 0.000000, 0.061122, 0.161660, + -0.297820, 0.903175, 0.000001, -0.997375, -0.072024, 0.000000, 0.052424, 0.274946, + -0.298019, 1.159339, 0.000001, -0.996033, 0.088870, 0.000000, 0.045340, 0.473093, + -0.249474, 1.422079, 0.000001, -0.955840, 0.293832, 0.000000, 0.035246, 0.751852, + -0.158784, 1.619116, 0.000001, -0.826655, 0.562639, 0.000000, 0.012361, 0.910828, + -0.056858, 1.692897, 0.056808, -0.359325, 0.861232, 0.359325, 1.247502, 0.980115, + -0.112293, 1.619116, 0.112242, -0.584552, 0.562670, 0.584552, 1.186319, 0.915857 + ], + "parts": [ + { + "id": "mpart1", + "type": "TRIANGLES", + "indices": [ + 0, 1, 2, 3, 4, 5, 0, 2, 6, 3, 7, 4, + 0, 6, 8, 3, 9, 7, 0, 8, 10, 3, 11, 9, + 0, 10, 12, 3, 13, 11, 12, 1, 0, 3, 5, 13, + 1, 5, 4, 1, 4, 2, 2, 4, 7, 2, 7, 6, + 6, 7, 9, 6, 9, 8, 8, 9, 11, 8, 11, 10, + 10, 11, 13, 10, 13, 12, 5, 1, 12, 5, 12, 13, + 14, 15, 16, 16, 15, 17, 16, 17, 18, 18, 17, 19, + 18, 19, 20, 20, 19, 21, 20, 21, 22, 22, 21, 23, + 22, 23, 24, 24, 23, 25, 24, 25, 26, 26, 25, 27, + 26, 27, 28, 28, 27, 29, 28, 29, 30, 31, 32, 33, + 29, 34, 35, 27, 36, 34, 27, 34, 29, 25, 37, 36, + 25, 36, 27, 23, 38, 37, 23, 37, 25, 21, 39, 38, + 21, 38, 23, 19, 40, 39, 19, 39, 21, 17, 41, 40, + 17, 40, 19, 15, 42, 41, 15, 41, 17, 15, 14, 42, + 42, 14, 43, 42, 43, 44, 42, 44, 41, 41, 44, 45, + 41, 45, 40, 40, 45, 46, 40, 46, 39, 39, 46, 47, + 39, 47, 38, 38, 47, 48, 38, 48, 37, 37, 48, 49, + 37, 49, 36, 36, 49, 50, 36, 50, 34, 34, 50, 35, + 51, 52, 33, 49, 53, 52, 49, 52, 50, 48, 54, 53, + 48, 53, 49, 47, 55, 54, 47, 54, 48, 46, 56, 55, + 46, 55, 47, 45, 57, 56, 45, 56, 46, 44, 58, 57, + 44, 57, 45, 43, 59, 58, 43, 58, 44, 43, 14, 59, + 59, 14, 60, 59, 60, 61, 59, 61, 58, 58, 61, 62, + 58, 62, 57, 57, 62, 63, 57, 63, 56, 56, 63, 64, + 56, 64, 55, 55, 64, 65, 55, 65, 54, 54, 65, 66, + 54, 66, 53, 53, 66, 67, 53, 67, 52, 52, 67, 33, + 67, 68, 33, 66, 69, 68, 66, 68, 67, 65, 70, 69, + 65, 69, 66, 64, 71, 70, 64, 70, 65, 63, 72, 71, + 63, 71, 64, 62, 73, 72, 62, 72, 63, 61, 74, 73, + 61, 73, 62, 60, 75, 74, 60, 74, 61, 60, 14, 75, + 75, 14, 76, 75, 76, 77, 75, 77, 74, 74, 77, 78, + 74, 78, 73, 73, 78, 79, 73, 79, 72, 72, 79, 80, + 72, 80, 71, 71, 80, 81, 71, 81, 70, 70, 81, 82, + 70, 82, 69, 69, 82, 83, 69, 83, 68, 68, 83, 33, + 83, 31, 33, 82, 84, 31, 82, 31, 83, 81, 85, 84, + 81, 84, 82, 80, 86, 85, 80, 85, 81, 79, 87, 86, + 79, 86, 80, 78, 88, 87, 78, 87, 79, 77, 89, 88, + 77, 88, 78, 90, 16, 18, 90, 18, 91, 90, 14, 16 + + ] + } + ] + } + ], + "materials": [ + { + "id": "_tree.png", + "diffuse": [ 0.900000, 0.900000, 0.900000], + "specular": [ 0.100000, 0.100000, 0.100000], + "textures": [ + { + "id": "_tree.png", + "filename": "tree.png", + "type": "DIFFUSE" + } + ] + } + ], + "nodes": [ + { + "id": "treeA_root", + "parts": [ + { + "meshpartid": "mpart1", + "materialid": "_tree.png", + "uvMapping": [[ 0]] + } + ] + } + ], + "animations": [] +} \ No newline at end of file diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/Gdx3DTest.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/Gdx3DTest.java new file mode 100644 index 00000000..431d2724 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/Gdx3DTest.java @@ -0,0 +1,48 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.gdx.GdxMap; +import org.oscim.gdx.GdxMapApp; +import org.oscim.layers.tile.vector.BuildingLayer; +import org.oscim.layers.tile.vector.VectorTileLayer; +import org.oscim.layers.tile.vector.labeling.LabelLayer; +import org.oscim.renderer.MapRenderer; +import org.oscim.theme.VtmThemes; +import org.oscim.tiling.TileSource; +import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; + +public class Gdx3DTest extends GdxMap { + + @Override + public void createLayers() { + MapRenderer.setBackgroundColor(0xff888888); + + mMap.setMapPosition(53.1, 8.8, 1 << 15); + + TileSource ts = new OSciMap4TileSource(); + // initDefaultLayers(ts, false, false, false); + + VectorTileLayer mMapLayer = mMap.setBaseMap(ts); + mMap.setTheme(VtmThemes.DEFAULT); + // mMap.setTheme(VtmThemes.TRONRENDER); + + mMap.layers().add(new BuildingLayer(mMap, mMapLayer)); + + // mMap.getLayers().add(new GenericLayer(mMap, new GridRenderer())); + + // ts = new OSciMap4TileSource("http://opensciencemap.org/tiles/s3db"); + // VectorTileLayer tl = new VectorTileLayer(mMap, 16, 16, 20); + // tl.setTileSource(ts); + // tl.setRenderTheme(ThemeLoader.load(VtmThemes.DEFAULT)); + // mMap.getLayers().add(tl); + // mMap.getLayers().add(new BuildingLayer(mMap, tl.getTileLayer())); + + mMap.layers().add(new Poi3DLayer(mMap, mMapLayer)); + + mMap.layers().add(new LabelLayer(mMap, mMapLayer)); + } + + public static void main(String[] args) { + GdxMapApp.init(); + GdxMapApp.run(new Gdx3DTest(), null, 320); + } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelLayer.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelLayer.java new file mode 100644 index 00000000..c42d80aa --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelLayer.java @@ -0,0 +1,237 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.core.MapPosition; +import org.oscim.event.Event; +import org.oscim.layers.Layer; +import org.oscim.map.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.model.Node; + +public class GdxModelLayer extends Layer implements Map.UpdateListener { + + static final Logger log = LoggerFactory.getLogger(GdxModelLayer.class); + + GdxRenderer3D g3d; + + //VectorTileLayer mTileLayer; + + public GdxModelLayer(Map map) { + super(map); + // tileLayer.addHook(new TileLoaderProcessHook() { + // + // @Override + // public boolean process(MapTile tile, ElementLayers layers, MapElement element) { + // + // if (!element.tags.contains(TREE_TAG)) + // return false; + // + // Poi3DTileData td = get(tile); + // PointF p = element.getPoint(0); + // SymbolItem s = SymbolItem.pool.get(); + // s.x = p.x; + // s.y = p.y; + // td.symbols.push(s); + // + // return true; + // } + // }); + //mTileLayer = tileLayer; + + mRenderer = g3d = new GdxRenderer3D(mMap); + + // Material mat = new + // Material(ColorAttribute.createDiffuse(Color.BLUE)); + // ModelBuilder modelBuilder = new ModelBuilder(); + // long attributes = Usage.Position | Usage.Normal | + // Usage.TextureCoordinates; + + // mModel = modelBuilder.createSphere(10f, 10f, 10f, 12, 12, + // mat, attributes); + + assets = new AssetManager(); + assets.load("data/g3d/test.g3db", Model.class); + loading = true; + } + + // TileSet mTileSet = new TileSet(); + // TileSet mPrevTiles = new TileSet(); + // + // LinkedHashMap> mTileMap = + // new LinkedHashMap>(); + + boolean loading; + Model mModel; + AssetManager assets; + + private void doneLoading() { + Model model = assets.get("data/g3d/test.g3db", Model.class); + for (int i = 0; i < model.nodes.size; i++) { + Node node = model.nodes.get(i); + log.debug("loader node " + node.id); + + if (node.id.equals("test_root")) { + node = node.getChild("Building", false, false); + log.debug("loader node " + node.id); + + node.rotation.setFromAxis(1, 0, 0, 90); + mModel = model; + + break; + } + + //} + } + + loading = false; + } + + @Override + public void onMapEvent(Event ev, MapPosition pos) { + + // if (ev == Map.CLEAR_EVENT) { + // mTileSet = new TileSet(); + // mPrevTiles = new TileSet(); + // mTileMap = new LinkedHashMap>(); + // synchronized (g3d) { + // g3d.instances.clear(); + // } + // } + // + if (loading && assets.update()) { + doneLoading(); + // Renderable renderable = new Renderable(); + // new SharedModel(mModel).getRenderable(renderable); + // Shader shader = new DefaultShader(renderable, true, false, + // false, false, 1, 0, 0, 0); + + g3d.instances.add(new SharedModel(mModel)); + + } + if (loading) + return; + + int x = 17185 << 1; + int y = 10662 << 1; + int z = 16; + double scale = 1 / (1 << z); + + g3d.cam.setMapPosition(x * scale - pos.x, y * scale - pos.y, scale / pos.scale); + + // + // // log.debug("update"); + // + // mTileLayer.tileRenderer().getVisibleTiles(mTileSet); + // + // if (mTileSet.cnt == 0) { + // mTileSet.releaseTiles(); + // return; + // } + // + // boolean changed = false; + // + // Array added = new Array(); + // Array removed = new Array(); + + // for (int i = 0; i < mTileSet.cnt; i++) { + // MapTile t = mTileSet.tiles[i]; + // if (mPrevTiles.contains(t)) + // continue; + // + // Array instances = new Array(); + // + // Poi3DTileData ld = (Poi3DTileData) t.getData(POI_DATA); + // if (ld == null) + // continue; + // + // for (SymbolItem it : ld.symbols) { + // + // SharedModel inst = new SharedModel(mModel); + // inst.userData = it; + // // float r = 0.5f + 0.5f * (float) Math.random(); + // // float g = 0.5f + 0.5f * (float) Math.random(); + // // float b = 0.5f + 0.5f * (float) Math.random(); + // + // // inst.transform.setTranslation(new Vector3(it.x, it.y, + // // 10)); + // // inst.materials.get(0).set(ColorAttribute.createDiffuse(r, + // // g, b, 0.8f)); + // instances.add(inst); + // added.add(inst); + // } + // + // if (instances.size == 0) + // continue; + // + // log.debug("add " + t + " " + instances.size); + // + // changed = true; + // + // mTileMap.put(t, instances); + // } + // + // for (int i = 0; i < mPrevTiles.cnt; i++) { + // MapTile t = mPrevTiles.tiles[i]; + // if (mTileSet.contains(t)) + // continue; + // + // Array instances = mTileMap.get(t); + // if (instances == null) + // continue; + // + // changed = true; + // + // removed.addAll(instances); + // mTileMap.remove(t); + // log.debug("remove " + t); + // } + // + // mPrevTiles.releaseTiles(); + // + // int zoom = mTileSet.tiles[0].zoomLevel; + // + // TileSet tmp = mPrevTiles; + // mPrevTiles = mTileSet; + // mTileSet = tmp; + // + // if (!changed) + // return; + // + // // scale aka tree height + // float scale = (float) (1f / (1 << (17 - zoom))) * 8; + // + // double tileX = (pos.x * (Tile.SIZE << zoom)); + // double tileY = (pos.y * (Tile.SIZE << zoom)); + // + // synchronized (g3d) { + // + // for (Entry> e : mTileMap.entrySet()) { + // Tile t = e.getKey(); + // + // float dx = (float) (t.tileX * Tile.SIZE - tileX); + // float dy = (float) (t.tileY * Tile.SIZE - tileY); + // + // for (SharedModel inst : e.getValue()) { + // SymbolItem it = (SymbolItem) inst.userData; + // + // // variable height + // float s = scale + (it.x * it.y) % 3; + // float r = (it.x * it.y) % 360; + // + // inst.transform.idt(); + // inst.transform.scale(s, s, s); + // inst.transform.translate((dx + it.x) / s, (dy + it.y) / s, 0); + // inst.transform.rotate(0, 0, 1, r); + // + // // inst.transform.setToTranslationAndScaling((dx + + // // it.x), (dy + it.y), + // // 0, s, s, s); + // + // } + // } + + } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java new file mode 100644 index 00000000..8f0b9272 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java @@ -0,0 +1,184 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.backend.GL20; +import org.oscim.core.Tile; +import org.oscim.map.Map; +import org.oscim.map.Viewport; +import org.oscim.renderer.GLState; +import org.oscim.renderer.GLViewport; +import org.oscim.renderer.LayerRenderer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.badlogic.gdx.graphics.g3d.Environment; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.ModelBatch; +import com.badlogic.gdx.graphics.g3d.Renderable; +import com.badlogic.gdx.graphics.g3d.Shader; +import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute; +import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight; +import com.badlogic.gdx.graphics.g3d.utils.DefaultShaderProvider; +import com.badlogic.gdx.graphics.g3d.utils.DefaultTextureBinder; +import com.badlogic.gdx.graphics.g3d.utils.RenderContext; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.Array; + +public class GdxModelRenderer extends LayerRenderer { + static final Logger log = LoggerFactory.getLogger(GdxModelRenderer.class); + + ModelBatch modelBatch; + public MapCamera cam; + Map mMap; + + boolean loading; + + public Environment lights; + + public Array instances = new Array(); + + public Shader shader; + public RenderContext renderContext; + public Model model; + private ModelBatch mBatch = new ModelBatch(); + + public GdxModelRenderer(Map map) { + mMap = map; + } + + @Override + protected boolean setup() { + + modelBatch = new ModelBatch(new DefaultShaderProvider()); + + lights = new Environment(); + lights.set(new ColorAttribute(ColorAttribute.AmbientLight, 1.0f, 1.0f, 1.0f, 1.f)); + lights.add(new DirectionalLight().set(0.3f, 0.3f, 0.3f, 0, 1, -0.2f)); + + cam = new MapCamera(mMap); + + renderContext = + new RenderContext(new DefaultTextureBinder(DefaultTextureBinder.WEIGHTED, 1)); + + // shader = new DefaultShader(renderable.material, + // renderable.mesh.getVertexAttributes(), true, false, 1, 0, 0, 0); + // shader.init(); + + return true; + } + + @Override + protected synchronized void update(GLViewport v) { + // if (loading && assets.update()) + // doneLoading(); + + if (!isReady()) { + cam.setPosition(v.pos); + setReady(true); + } + + // if (changed) { + // cam.update(position, matrices); + // } + } + + Vector3 tempVector = new Vector3(); + float[] mBox = new float[8]; + + Renderable r = new Renderable(); + + @Override + protected void render(GLViewport v) { + if (instances.size == 0) + return; + + // GLUtils.checkGlError(">" + TAG); + + GL.glDepthMask(true); + + if (v.pos.zoomLevel < 16) + GL.glClear(GL20.GL_DEPTH_BUFFER_BIT); + + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + + // set state that is expected after modelBatch.end(); + // modelBatch keeps track of its own state + GLState.enableVertexArrays(-1, -1); + GLState.bindTex2D(-1); + GLState.useProgram(-1); + GLState.test(false, false); + GLState.blend(false); + + cam.update(v); + + Viewport p = mMap.viewport(); + p.getMapExtents(mBox, 10); + float scale = (float) (cam.mMapPosition.scale / v.pos.scale); + + float dx = (float) (cam.mMapPosition.x - v.pos.x) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + float dy = (float) (cam.mMapPosition.y - v.pos.y) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + + for (int i = 0; i < 8; i += 2) { + mBox[i] *= scale; + mBox[i] -= dx; + mBox[i + 1] *= scale; + mBox[i + 1] -= dy; + } + + //int w = mMap.getWidth() / 2; + //int h = mMap.getHeight() / 2; + //float sqRadius = (w * w + h * h) / scale; + + synchronized (this) { + if (instances.size == 0) + return; + + //renderContext.begin(); + + // if (shader == null) { + // r = instances.get(0).getRenderable(r); + // DefaultShader.Config c = new DefaultShader.Config(); + // c.numBones = 0; + // c.numDirectionalLights = 1; + // r.environment = lights; + // + // shader = new DefaultShader(r, c); + // shader.init(); + // } + mBatch.begin(cam); + //shader.begin(cam, renderContext); + + for (SharedModel instance : instances) { + instance.transform.getTranslation(tempVector); + //instance.getRenderables(renderables, pool); + // if (tempVector.x * tempVector.x + tempVector.y * tempVector.y > sqRadius) + // continue; + // tempVector.scl(0.8f, 0.8f, 1); + // if (!GeometryUtils.pointInPoly(tempVector.x, tempVector.y, mBox, 8, 0)) + // continue; + + mBatch.render(instance); + + //shader.render(r); + } + mBatch.end(); + + //shader.end(); + //renderContext.end(); + } + + GL.glDepthMask(false); + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + GL.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0); + } + + // @Override + // public void dispose () { + // modelBatch.dispose(); + // assets.dispose(); + // assets = null; + // axesModel.dispose(); + // axesModel = null; + // } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java new file mode 100644 index 00000000..6f743c17 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java @@ -0,0 +1,198 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.backend.GL20; +import org.oscim.core.Tile; +import org.oscim.map.Map; +import org.oscim.map.Viewport; +import org.oscim.renderer.GLState; +import org.oscim.renderer.GLViewport; +import org.oscim.renderer.LayerRenderer; +import org.oscim.utils.geom.GeometryUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.badlogic.gdx.graphics.g3d.Environment; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.ModelBatch; +import com.badlogic.gdx.graphics.g3d.Renderable; +import com.badlogic.gdx.graphics.g3d.Shader; +import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute; +import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight; +import com.badlogic.gdx.graphics.g3d.shaders.DefaultShader; +import com.badlogic.gdx.graphics.g3d.utils.DefaultShaderProvider; +import com.badlogic.gdx.graphics.g3d.utils.DefaultTextureBinder; +import com.badlogic.gdx.graphics.g3d.utils.RenderContext; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.Array; + +public class GdxRenderer3D extends LayerRenderer { + static final Logger log = LoggerFactory.getLogger(GdxRenderer3D.class); + + ModelBatch modelBatch; + public MapCamera cam; + Map mMap; + + boolean loading; + + public Environment lights; + + public Array instances = new Array(); + + public Shader shader; + public RenderContext renderContext; + public Model model; + + public GdxRenderer3D(Map map) { + mMap = map; + } + + @Override + protected boolean setup() { + + modelBatch = new ModelBatch(new DefaultShaderProvider()); + + lights = new Environment(); + lights.set(new ColorAttribute(ColorAttribute.AmbientLight, 1.0f, 1.0f, 1.0f, 1.f)); + lights.add(new DirectionalLight().set(0.3f, 0.3f, 0.3f, 0, 1, -0.2f)); + + cam = new MapCamera(mMap); + + renderContext = + new RenderContext(new DefaultTextureBinder(DefaultTextureBinder.WEIGHTED, 1)); + + // shader = new DefaultShader(renderable.material, + // renderable.mesh.getVertexAttributes(), true, false, 1, 0, 0, 0); + // shader.init(); + + return true; + } + + @Override + protected synchronized void update(GLViewport v) { + // if (loading && assets.update()) + // doneLoading(); + + if (!isReady()) { + cam.setPosition(v.pos); + setReady(true); + } + + // if (changed) { + // cam.update(position, matrices); + // } + } + + Vector3 tempVector = new Vector3(); + float[] mBox = new float[8]; + + Renderable r = new Renderable(); + + @Override + protected void render(GLViewport v) { + if (instances.size == 0) + return; + + // GLUtils.checkGlError(">" + TAG); + + GL.glDepthMask(true); + + // if (position.zoomLevel < 17) + // GL.glClear(GL20.GL_DEPTH_BUFFER_BIT); + + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + + // set state that is expected after modelBatch.end(); + // modelBatch keeps track of its own state + GLState.enableVertexArrays(-1, -1); + GLState.bindTex2D(-1); + GLState.useProgram(-1); + GLState.test(false, false); + GLState.blend(false); + + cam.update(v); + long time = System.currentTimeMillis(); + + int cnt = 0; + int rnd = 0; + + Viewport p = mMap.viewport(); + p.getMapExtents(mBox, 10); + float scale = (float) (cam.mMapPosition.scale / v.pos.scale); + + float dx = (float) (cam.mMapPosition.x - v.pos.x) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + float dy = (float) (cam.mMapPosition.y - v.pos.y) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + + for (int i = 0; i < 8; i += 2) { + mBox[i] *= scale; + mBox[i] -= dx; + mBox[i + 1] *= scale; + mBox[i + 1] -= dy; + } + + int w = mMap.getWidth() / 2; + int h = mMap.getHeight() / 2; + + float sqRadius = (w * w + h * h) / scale; + + synchronized (this) { + if (instances.size == 0) + return; + + cnt = instances.size; + + renderContext.begin(); + + if (shader == null) { + r = instances.get(0).getRenderable(r); + DefaultShader.Config c = new DefaultShader.Config(); + c.numBones = 0; + c.numDirectionalLights = 1; + r.environment = lights; + // shader = new DefaultShader(r, true, false, false, false, 1, + // 0, 0, 0); + shader = new DefaultShader(r, c); + shader.init(); + } + + shader.begin(cam, renderContext); + + for (SharedModel instance : instances) { + instance.transform.getTranslation(tempVector); + + if (tempVector.x * tempVector.x + tempVector.y * tempVector.y > sqRadius) + continue; + + tempVector.scl(0.8f, 0.8f, 1); + + if (!GeometryUtils.pointInPoly(tempVector.x, tempVector.y, mBox, 8, 0)) + continue; + + instance.getRenderable(r); + // r.lights = lights; + // r.environment = lights; + shader.render(r); + + rnd++; + } + + shader.end(); + renderContext.end(); + } + log.debug(">>> " + (System.currentTimeMillis() - time) + " " + cnt + "/" + rnd); + + GL.glDepthMask(false); + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + GL.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0); + } + + // @Override + // public void dispose () { + // modelBatch.dispose(); + // assets.dispose(); + // assets = null; + // axesModel.dispose(); + // axesModel = null; + // } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java new file mode 100644 index 00000000..f469ae43 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java @@ -0,0 +1,164 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.backend.GL20; +import org.oscim.core.Tile; +import org.oscim.map.Map; +import org.oscim.map.Viewport; +import org.oscim.renderer.GLState; +import org.oscim.renderer.GLViewport; +import org.oscim.renderer.LayerRenderer; +import org.oscim.utils.geom.GeometryUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.badlogic.gdx.graphics.g3d.Environment; +import com.badlogic.gdx.graphics.g3d.ModelBatch; +import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight; +import com.badlogic.gdx.graphics.g3d.utils.DefaultShaderProvider; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.Array; + +public class GdxRenderer3D2 extends LayerRenderer { + static final Logger log = LoggerFactory.getLogger(GdxRenderer3D2.class); + + ModelBatch modelBatch; + public MapCamera cam; + Map mMap; + + boolean loading; + + public Environment lights; + + public Array instances = new Array(); + + public GdxRenderer3D2(Map map) { + mMap = map; + } + + @Override + protected boolean setup() { + + // if (assets == null) + // assets = new AssetManager(); + + // assets.load("data/g3d/invaders.g3dj", Model.class); + // loading = true; + + modelBatch = new ModelBatch(new DefaultShaderProvider()); + + lights = new Environment(); + // lights.ambientLight.set(1.0f, 1.0f, 1.0f, 1f); + // lights.ambientLight.set(215 / 255f, + // 240 / 255f, + // 51 / 255f, 1f); + + lights.add(new DirectionalLight().set(0.9f, 0.9f, 0.9f, 0, 1, -0.2f)); + + cam = new MapCamera(mMap); + + return true; + } + + @Override + protected synchronized void update(GLViewport v) { + // if (loading && assets.update()) + // doneLoading(); + + if (!isReady()) { + cam.setPosition(v.pos); + setReady(true); + } + + // if (changed) { + // cam.update(position, matrices); + // } + } + + Vector3 tempVector = new Vector3(); + float[] mBox = new float[8]; + + @Override + protected void render(GLViewport v) { + if (instances.size == 0) + return; + + // GLUtils.checkGlError(">" + TAG); + + GL.glDepthMask(true); + + if (v.pos.zoomLevel < 17) + GL.glClear(GL20.GL_DEPTH_BUFFER_BIT); + + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + + // set state that is expected after modelBatch.end(); + // modelBatch keeps track of its own state + GLState.enableVertexArrays(-1, -1); + GLState.bindTex2D(-1); + GLState.useProgram(-1); + GLState.test(false, false); + GLState.blend(false); + + // GL.glCullFace(GL20.GL_BACK); + // GL.glFrontFace(GL20.GL_CW); + + cam.update(v); + long time = System.currentTimeMillis(); + + int cnt = 0; + int rnd = 0; + + Viewport p = mMap.viewport(); + p.getMapExtents(mBox, 10); + float scale = (float) (cam.mMapPosition.scale / v.pos.scale); + + float dx = + (float) (cam.mMapPosition.x - v.pos.x) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + float dy = + (float) (cam.mMapPosition.y - v.pos.y) + * (Tile.SIZE << cam.mMapPosition.zoomLevel); + + for (int i = 0; i < 8; i += 2) { + mBox[i] *= scale; + mBox[i] -= dx; + mBox[i + 1] *= scale; + mBox[i + 1] -= dy; + } + + synchronized (this) { + modelBatch.begin(cam); + cnt = instances.size; + + for (SharedModel instance : instances) { + instance.transform.getTranslation(tempVector); + tempVector.scl(0.9f, 0.9f, 1); + if (!GeometryUtils.pointInPoly(tempVector.x, tempVector.y, mBox, 8, 0)) + continue; + + modelBatch.render(instance); + rnd++; + } + modelBatch.end(); + } + log.debug(">>> " + (System.currentTimeMillis() - time) + " " + cnt + "/" + rnd); + + // GLUtils.checkGlError("<" + TAG); + + GL.glDepthMask(false); + GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); + GL.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0); + + // GLState.bindTex2D(-1); + // GLState.useProgram(-1); + } + + // @Override + // public void dispose () { + // modelBatch.dispose(); + // assets.dispose(); + // assets = null; + // axesModel.dispose(); + // axesModel = null; + // } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/MapCamera.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/MapCamera.java new file mode 100644 index 00000000..d935a0a7 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/MapCamera.java @@ -0,0 +1,70 @@ +package org.oscim.test.gdx.poi3d; + +import org.oscim.core.MapPosition; +import org.oscim.core.Tile; +import org.oscim.map.Map; +import org.oscim.renderer.GLViewport; + +import com.badlogic.gdx.graphics.Camera; +import com.badlogic.gdx.math.Matrix4; + +public class MapCamera extends Camera { + + private final Map mMap; + + public MapCamera(Map map) { + mMap = map; + + this.near = 1; + this.far = 8; + } + + MapPosition mMapPosition = new MapPosition(); + + public void setPosition(MapPosition pos) { + mMapPosition.copy(pos); + + this.viewportWidth = mMap.getWidth(); + this.viewportHeight = mMap.getHeight(); + } + + public void setMapPosition(double x, double y, double scale) { + mMapPosition.setScale(scale); + mMapPosition.x = x; + mMapPosition.y = y; + } + + public void update(GLViewport v) { + double scale = (v.pos.scale * Tile.SIZE); + + float x = (float) ((mMapPosition.x - v.pos.x) * scale); + float y = (float) ((mMapPosition.y - v.pos.y) * scale); + float z = (float) (v.pos.scale / mMapPosition.scale); + + v.proj.get(projection.getValues()); + v.mvp.setTransScale(x, y, z); + v.mvp.setValue(10, z); + v.mvp.multiplyLhs(v.view); + v.mvp.get(view.getValues()); + + combined.set(projection); + + Matrix4.mul(combined.val, view.val); + + //if (updateFrustum) { + invProjectionView.set(combined); + Matrix4.inv(invProjectionView.val); + frustum.update(invProjectionView); + //} + } + + @Override + public void update() { + } + + @Override + public void update(boolean updateFrustum) { + + } + +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java new file mode 100644 index 00000000..d2b55c84 --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java @@ -0,0 +1,258 @@ +package org.oscim.test.gdx.poi3d; + +import java.util.LinkedHashMap; +import java.util.Map.Entry; + +import org.oscim.core.MapElement; +import org.oscim.core.MapPosition; +import org.oscim.core.PointF; +import org.oscim.core.Tag; +import org.oscim.core.Tile; +import org.oscim.event.Event; +import org.oscim.layers.Layer; +import org.oscim.layers.tile.MapTile; +import org.oscim.layers.tile.MapTile.TileData; +import org.oscim.layers.tile.TileSet; +import org.oscim.layers.tile.vector.VectorTileLayer; +import org.oscim.layers.tile.vector.VectorTileLayer.TileLoaderProcessHook; +import org.oscim.map.Map; +import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.elements.SymbolItem; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.model.Node; +import com.badlogic.gdx.utils.Array; + +public class Poi3DLayer extends Layer implements Map.UpdateListener { + + static final Logger log = LoggerFactory.getLogger(Poi3DLayer.class); + + static class Poi3DTileData extends TileData { + public final List symbols = new List(); + + @Override + protected void dispose() { + SymbolItem.pool.releaseAll(symbols.clear()); + } + } + + final static String POI_DATA = Poi3DLayer.class.getSimpleName(); + final static Tag TREE_TAG = new Tag("natural", "tree"); + + private Poi3DTileData get(MapTile tile) { + Poi3DTileData ld = (Poi3DTileData) tile.getData(POI_DATA); + if (ld == null) { + ld = new Poi3DTileData(); + tile.addData(POI_DATA, ld); + } + return ld; + } + + GdxRenderer3D g3d; + VectorTileLayer mTileLayer; + + public Poi3DLayer(Map map, VectorTileLayer tileLayer) { + super(map); + tileLayer.addHook(new TileLoaderProcessHook() { + + @Override + public boolean process(MapTile tile, ElementLayers layers, MapElement element) { + + if (!element.tags.contains(TREE_TAG)) + return false; + + Poi3DTileData td = get(tile); + PointF p = element.getPoint(0); + SymbolItem s = SymbolItem.pool.get(); + s.x = p.x; + s.y = p.y; + td.symbols.push(s); + + return true; + } + }); + mTileLayer = tileLayer; + + mRenderer = g3d = new GdxRenderer3D(mMap); + + // Material mat = new + // Material(ColorAttribute.createDiffuse(Color.BLUE)); + // ModelBuilder modelBuilder = new ModelBuilder(); + // long attributes = Usage.Position | Usage.Normal | + // Usage.TextureCoordinates; + + // mModel = modelBuilder.createSphere(10f, 10f, 10f, 12, 12, + // mat, attributes); + + assets = new AssetManager(); + assets.load("data/g3d/treeA.g3dj", Model.class); + loading = true; + } + + TileSet mTileSet = new TileSet(); + TileSet mPrevTiles = new TileSet(); + + LinkedHashMap> mTileMap = + new LinkedHashMap>(); + + boolean loading; + Model mModel; + AssetManager assets; + + private void doneLoading() { + Model model = assets.get("data/g3d/treeA.g3dj", Model.class); + for (int i = 0; i < model.nodes.size; i++) { + Node node = model.nodes.get(i); + + if (node.id.equals("treeA_root")) { + node.rotation.setFromAxis(1, 0, 0, 90); + mModel = model; + + } + } + + loading = false; + } + + @Override + public void onMapEvent(Event ev, MapPosition pos) { + + if (ev == Map.CLEAR_EVENT) { + mTileSet = new TileSet(); + mPrevTiles = new TileSet(); + mTileMap = new LinkedHashMap>(); + synchronized (g3d) { + g3d.instances.clear(); + } + } + + if (loading && assets.update()) { + doneLoading(); + // Renderable renderable = new Renderable(); + // new SharedModel(mModel).getRenderable(renderable); + // Shader shader = new DefaultShader(renderable, true, false, + // false, false, 1, 0, 0, 0); + } + if (loading) + return; + + // log.debug("update"); + + mTileLayer.tileRenderer().getVisibleTiles(mTileSet); + + if (mTileSet.cnt == 0) { + mTileSet.releaseTiles(); + return; + } + + boolean changed = false; + + Array added = new Array(); + Array removed = new Array(); + + for (int i = 0; i < mTileSet.cnt; i++) { + MapTile t = mTileSet.tiles[i]; + if (mPrevTiles.contains(t)) + continue; + + Array instances = new Array(); + + Poi3DTileData ld = (Poi3DTileData) t.getData(POI_DATA); + if (ld == null) + continue; + + for (SymbolItem it : ld.symbols) { + + SharedModel inst = new SharedModel(mModel); + inst.userData = it; + // float r = 0.5f + 0.5f * (float) Math.random(); + // float g = 0.5f + 0.5f * (float) Math.random(); + // float b = 0.5f + 0.5f * (float) Math.random(); + + // inst.transform.setTranslation(new Vector3(it.x, it.y, + // 10)); + // inst.materials.get(0).set(ColorAttribute.createDiffuse(r, + // g, b, 0.8f)); + instances.add(inst); + added.add(inst); + } + + if (instances.size == 0) + continue; + + log.debug("add " + t + " " + instances.size); + + changed = true; + + mTileMap.put(t, instances); + } + + for (int i = 0; i < mPrevTiles.cnt; i++) { + MapTile t = mPrevTiles.tiles[i]; + if (mTileSet.contains(t)) + continue; + + Array instances = mTileMap.get(t); + if (instances == null) + continue; + + changed = true; + + removed.addAll(instances); + mTileMap.remove(t); + log.debug("remove " + t); + } + + mPrevTiles.releaseTiles(); + + int zoom = mTileSet.tiles[0].zoomLevel; + + TileSet tmp = mPrevTiles; + mPrevTiles = mTileSet; + mTileSet = tmp; + + if (!changed) + return; + + // scale aka tree height + float scale = (float) (1f / (1 << (17 - zoom))) * 8; + + double tileX = (pos.x * (Tile.SIZE << zoom)); + double tileY = (pos.y * (Tile.SIZE << zoom)); + + synchronized (g3d) { + + for (Entry> e : mTileMap.entrySet()) { + Tile t = e.getKey(); + + float dx = (float) (t.tileX * Tile.SIZE - tileX); + float dy = (float) (t.tileY * Tile.SIZE - tileY); + + for (SharedModel inst : e.getValue()) { + SymbolItem it = (SymbolItem) inst.userData; + + // variable height + float s = scale + (it.x * it.y) % 3; + float r = (it.x * it.y) % 360; + + inst.transform.idt(); + inst.transform.scale(s, s, s); + inst.transform.translate((dx + it.x) / s, (dy + it.y) / s, 0); + inst.transform.rotate(0, 0, 1, r); + + // inst.transform.setToTranslationAndScaling((dx + + // it.x), (dy + it.y), + // 0, s, s, s); + + } + } + + g3d.instances.removeAll(removed, true); + g3d.instances.addAll(added); + g3d.cam.setMapPosition(pos.x, pos.y, 1 << zoom); + } + } +} diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/SharedModel.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/SharedModel.java new file mode 100644 index 00000000..7c2059da --- /dev/null +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/SharedModel.java @@ -0,0 +1,461 @@ +package org.oscim.test.gdx.poi3d; + +import com.badlogic.gdx.graphics.g3d.Material; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.ModelBatch; +import com.badlogic.gdx.graphics.g3d.Renderable; +import com.badlogic.gdx.graphics.g3d.RenderableProvider; +import com.badlogic.gdx.graphics.g3d.model.Animation; +import com.badlogic.gdx.graphics.g3d.model.MeshPart; +import com.badlogic.gdx.graphics.g3d.model.Node; +import com.badlogic.gdx.graphics.g3d.model.NodeAnimation; +import com.badlogic.gdx.graphics.g3d.model.NodeKeyframe; +import com.badlogic.gdx.graphics.g3d.model.NodePart; +import com.badlogic.gdx.math.Matrix4; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.math.collision.BoundingBox; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.ArrayMap; +import com.badlogic.gdx.utils.ObjectMap; +import com.badlogic.gdx.utils.Pool; + +/** An instance of a {@link Model}, allows to specify global transform and modify the materials, as it + * has a copy of the model's materials. Multiple instances can be created from the same Model, + * all sharing the meshes and textures of the Model. The Model owns the meshes and textures, to + * dispose of these, the Model has to be disposed. Therefor, the Model must outlive all its ModelInstances

+ * + * The ModelInstance creates a full copy of all materials, nodes and animations. + * @author badlogic, xoppa */ +public class SharedModel implements RenderableProvider { + /** the materials of the model, used by nodes that have a graphical representation FIXME not sure if superfluous, allows modification of materials without having to traverse the nodes **/ + public final Array materials = new Array(); + /** root nodes of the model **/ + public final Array nodes = new Array(); + /** animations of the model, modifying node transformations **/ + public final Array animations = new Array(); + /** the {@link Model} this instances derives from **/ + public final Model model; + /** the world transform **/ + public Matrix4 transform; + /** user definable value, which is passed to the shader. */ + public Object userData; + + /** Constructs a new ModelInstance with all nodes and materials of the given model. + * @param model The {@link Model} to create an instance of. */ + public SharedModel(final Model model) { + this(model, (String[])null); + } + + /** @param model The source {@link Model} + * @param nodeId The ID of the root {@link Node} of the {@link Model} for the instance to contain + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final String nodeId, boolean mergeTransform) { + this(model, null, nodeId, false, false, mergeTransform); + } + + /** @param model The source {@link Model} + * @param transform The {@link Matrix4} instance for this ModelInstance to reference or null to create a new matrix. + * @param nodeId The ID of the root {@link Node} of the {@link Model} for the instance to contain + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final Matrix4 transform, final String nodeId, boolean mergeTransform) { + this(model, transform, nodeId, false, false, mergeTransform); + } + + /** Recursively searches the mode for the specified node. + * @param model The source {@link Model} + * @param nodeId The ID of the {@link Node} within the {@link Model} for the instance to contain + * @param parentTransform True to apply the parent's node transform to the instance (only applicable if recursive is true). + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final String nodeId, boolean parentTransform, boolean mergeTransform) { + this(model, null, nodeId, true, parentTransform, mergeTransform); + } + + /** Recursively searches the mode for the specified node. + * @param model The source {@link Model} + * @param transform The {@link Matrix4} instance for this ModelInstance to reference or null to create a new matrix. + * @param nodeId The ID of the {@link Node} within the {@link Model} for the instance to contain + * @param parentTransform True to apply the parent's node transform to the instance (only applicable if recursive is true). + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final Matrix4 transform, final String nodeId, boolean parentTransform, boolean mergeTransform) { + this(model, transform, nodeId, true, parentTransform, mergeTransform); + } + + /** @param model The source {@link Model} + * @param nodeId The ID of the {@link Node} within the {@link Model} for the instance to contain + * @param recursive True to recursively search the Model's node tree, false to only search for a root node + * @param parentTransform True to apply the parent's node transform to the instance (only applicable if recursive is true). + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final String nodeId, boolean recursive, boolean parentTransform, boolean mergeTransform) { + this(model, null, nodeId, recursive, parentTransform, mergeTransform); + } + + /** @param model The source {@link Model} + * @param transform The {@link Matrix4} instance for this ModelInstance to reference or null to create a new matrix. + * @param nodeId The ID of the {@link Node} within the {@link Model} for the instance to contain + * @param recursive True to recursively search the Model's node tree, false to only search for a root node + * @param parentTransform True to apply the parent's node transform to the instance (only applicable if recursive is true). + * @param mergeTransform True to apply the source node transform to the instance transform, resetting the node transform. */ + public SharedModel(final Model model, final Matrix4 transform, final String nodeId, boolean recursive, boolean parentTransform, boolean mergeTransform) { + this.model = model; + this.transform = transform == null ? new Matrix4() : transform; + nodePartBones.clear(); + Node copy, node = model.getNode(nodeId, recursive); + this.nodes.add(copy = copyNode(null, node)); + if (mergeTransform) { + this.transform.mul(parentTransform ? node.globalTransform : node.localTransform); + copy.translation.set(0,0,0); + copy.rotation.idt(); + copy.scale.set(1,1,1); + } else if (parentTransform && copy.parent != null) + this.transform.mul(node.parent.globalTransform); + setBones(); + copyAnimations(model.animations); + calculateTransforms(); + } + + /** Constructs a new ModelInstance with only the specified nodes and materials of the given model. */ + public SharedModel(final Model model, final String... rootNodeIds) { + this(model, null, rootNodeIds); + } + + /** Constructs a new ModelInstance with only the specified nodes and materials of the given model. */ + public SharedModel(final Model model, final Matrix4 transform, final String... rootNodeIds) { + this.model = model; + this.transform = transform == null ? new Matrix4() : transform; + if (rootNodeIds == null) + copyNodes(model.nodes); + else + copyNodes(model.nodes, rootNodeIds); + copyAnimations(model.animations); + calculateTransforms(); + } + + /** Constructs a new ModelInstance with only the specified nodes and materials of the given model. */ + public SharedModel(final Model model, final Array rootNodeIds) { + this(model, null, rootNodeIds); + } + + /** Constructs a new ModelInstance with only the specified nodes and materials of the given model. */ + public SharedModel(final Model model, final Matrix4 transform, final Array rootNodeIds) { + this.model = model; + this.transform = transform == null ? new Matrix4() : transform; + copyNodes(model.nodes, rootNodeIds); + copyAnimations(model.animations); + calculateTransforms(); + } + + /** Constructs a new ModelInstance at the specified position. */ + public SharedModel(final Model model, Vector3 position) { + this(model); + this.transform.setToTranslation(position); + } + + /** Constructs a new ModelInstance at the specified position. */ + public SharedModel(final Model model, float x, float y, float z) { + this(model); + this.transform.setToTranslation(x, y, z); + } + + /** Constructs a new ModelInstance with the specified transform. */ + public SharedModel(final Model model, Matrix4 transform) { + this(model, transform, (String[])null); + } + + /** Constructs a new ModelInstance which is an copy of the specified ModelInstance. */ + public SharedModel(SharedModel copyFrom) { + this(copyFrom, copyFrom.transform.cpy()); + } + + /** Constructs a new ModelInstance which is an copy of the specified ModelInstance. */ + public SharedModel(SharedModel copyFrom, final Matrix4 transform) { + this.model = copyFrom.model; + this.transform = transform == null ? new Matrix4() : transform; + copyNodes(copyFrom.nodes); + copyAnimations(copyFrom.animations); + calculateTransforms(); + } + + /** @return A newly created ModelInstance which is a copy of this ModelInstance */ + public SharedModel copy() { + return new SharedModel(this); + } + + private ObjectMap> nodePartBones = new ObjectMap>(); + private void copyNodes (Array nodes) { + nodePartBones.clear(); + for(int i = 0, n = nodes.size; i nodes, final String... nodeIds) { + nodePartBones.clear(); + for(int i = 0, n = nodes.size; i nodes, final Array nodeIds) { + nodePartBones.clear(); + for(int i = 0, n = nodes.size; i> e : nodePartBones.entries()) { + if (e.key.invBoneBindTransforms == null) + e.key.invBoneBindTransforms = new ArrayMap(true, e.value.size, Node.class, Matrix4.class); + e.key.invBoneBindTransforms.clear(); + + for (final ObjectMap.Entry b : e.value.entries()) + e.key.invBoneBindTransforms.put(getNode(b.key.id), b.value); // Share the inv bind matrix with the model + + e.key.bones = new Matrix4[e.value.size]; + for (int i = 0; i < e.key.bones.length; i++) + e.key.bones[i] = new Matrix4(); + } + } + + private Node copyNode(Node parent, Node node) { + Node copy = new Node(); + copy.id = node.id; + //copy.boneId = node.boneId; + copy.parent = parent; + copy.translation.set(node.translation); + copy.rotation.set(node.rotation); + copy.scale.set(node.scale); + copy.localTransform.set(node.localTransform); + copy.globalTransform.set(node.globalTransform); + for(NodePart nodePart: node.parts) { + copy.parts.add(copyNodePart(nodePart)); + } + for(Node child: node.children) { + copy.children.add(copyNode(copy, child)); + } + return copy; + } + + private NodePart copyNodePart (NodePart nodePart) { + NodePart copy = new NodePart(); + copy.meshPart = new MeshPart(); + copy.meshPart.id = nodePart.meshPart.id; + copy.meshPart.indexOffset = nodePart.meshPart.indexOffset; + copy.meshPart.numVertices = nodePart.meshPart.numVertices; + copy.meshPart.primitiveType = nodePart.meshPart.primitiveType; + copy.meshPart.mesh = nodePart.meshPart.mesh; + + if (nodePart.invBoneBindTransforms != null) + nodePartBones.put(copy, nodePart.invBoneBindTransforms); + +// final int index = materials.indexOf(nodePart.material, false); +// if (index < 0) +// materials.add(copy.material = nodePart.material.copy()); +// else +// copy.material = materials.get(index); +// + copy.material = nodePart.material; + + return copy; + } + + private void copyAnimations (final Iterable source) { + for (final Animation anim : source) { + Animation animation = new Animation(); + animation.id = anim.id; + animation.duration = anim.duration; + for (final NodeAnimation nanim : anim.nodeAnimations) { + final Node node = getNode(nanim.node.id); + if (node == null) + continue; + NodeAnimation nodeAnim = new NodeAnimation(); + nodeAnim.node = node; + for (final NodeKeyframe kf : nanim.keyframes) { + NodeKeyframe keyframe = new NodeKeyframe(); + keyframe.keytime = kf.keytime; + keyframe.rotation.set(kf.rotation); + keyframe.scale.set(kf.scale); + keyframe.translation.set(kf.translation); + nodeAnim.keyframes.add(keyframe); + } + if (nodeAnim.keyframes.size > 0) + animation.nodeAnimations.add(nodeAnim); + } + if (animation.nodeAnimations.size > 0) + animations.add(animation); + } + } + + + /** + * Traverses the Node hierarchy and collects {@link Renderable} instances for every + * node with a graphical representation. Renderables are obtained from the provided + * pool. The resulting array can be rendered via a {@link ModelBatch}. + * + * @param renderables the output array + * @param pool the pool to obtain Renderables from + */ + public void getRenderables(Array renderables, Pool pool) { + for(Node node: nodes) { + getRenderables(node, renderables, pool); + } + } + + /** @return The renderable of the first node's first part. */ + public Renderable getRenderable(final Renderable out) { + return getRenderable(out, nodes.get(0)); + } + + /** @return The renderable of the node's first part. */ + public Renderable getRenderable(final Renderable out, final Node node) { + return getRenderable(out, node, node.parts.get(0)); + } + + public Renderable getRenderable(final Renderable out, final Node node, final NodePart nodePart) { + nodePart.setRenderable(out); + if (nodePart.bones == null && transform != null) + out.worldTransform.set(transform).mul(node.globalTransform); + else if (transform != null) + out.worldTransform.set(transform); + else + out.worldTransform.idt(); + out.userData = userData; + return out; + } + + protected void getRenderables(Node node, Array renderables, Pool pool) { + if(node.parts.size > 0) { + for(NodePart nodePart: node.parts) { + renderables.add(getRenderable(pool.obtain(), node, nodePart)); + } + } + + for(Node child: node.children) { + getRenderables(child, renderables, pool); + } + } + + /** Calculates the local and world transform of all {@link Node} instances in this model, recursively. + * First each {@link Node#localTransform} transform is calculated based on the translation, rotation and + * scale of each Node. Then each {@link Node#calculateWorldTransform()} + * is calculated, based on the parent's world transform and the local transform of each Node. + * Finally, the animation bone matrices are updated accordingly.

+ * + * This method can be used to recalculate all transforms if any of the Node's local properties (translation, rotation, scale) + * was modified. + */ + public void calculateTransforms() { + final int n = nodes.size; + for(int i = 0; i < n; i++) { + nodes.get(i).calculateTransforms(true); + } + for(int i = 0; i < n; i++) { + nodes.get(i).calculateBoneTransforms(true); + } + } + + /** Calculate the bounding box of this model instance. + * This is a potential slow operation, it is advised to cache the result. + * @param out the {@link BoundingBox} that will be set with the bounds. + * @return the out parameter for chaining */ + public BoundingBox calculateBoundingBox(final BoundingBox out) { + out.inf(); + return extendBoundingBox(out); + } + + /** Extends the bounding box with the bounds of this model instance. + * This is a potential slow operation, it is advised to cache the result. + * @param out the {@link BoundingBox} that will be extended with the bounds. + * @return the out parameter for chaining */ + public BoundingBox extendBoundingBox(final BoundingBox out) { + final int n = nodes.size; + for(int i = 0; i < n; i++) + nodes.get(i).extendBoundingBox(out); + return out; + } + + /** @param id The ID of the animation to fetch (case sensitive). + * @return The {@link Animation} with the specified id, or null if not available. */ + public Animation getAnimation(final String id) { + return getAnimation(id, true); + } + + /** @param id The ID of the animation to fetch. + * @param ignoreCase whether to use case sensitivity when comparing the animation id. + * @return The {@link Animation} with the specified id, or null if not available. */ + public Animation getAnimation(final String id, boolean ignoreCase) { + final int n = animations.size; + Animation animation; + if (ignoreCase) { + for (int i = 0; i < n; i++) + if ((animation = animations.get(i)).id.equalsIgnoreCase(id)) + return animation; + } else { + for (int i = 0; i < n; i++) + if ((animation = animations.get(i)).id.equals(id)) + return animation; + } + return null; + } + +// /** @param id The ID of the material to fetch. +// * @return The {@link Material} with the specified id, or null if not available. */ +// public Material getMaterial(final String id) { +// return getMaterial(id, true); +// } +// +// /** @param id The ID of the material to fetch. +// * @param ignoreCase whether to use case sensitivity when comparing the material id. +// * @return The {@link Material} with the specified id, or null if not available. */ +// public Material getMaterial(final String id, boolean ignoreCase) { +// final int n = materials.size; +// Material material; +// if (ignoreCase) { +// for (int i = 0; i < n; i++) +// if ((material = materials.get(i)).id.equalsIgnoreCase(id)) +// return material; +// } else { +// for (int i = 0; i < n; i++) +// if ((material = materials.get(i)).id.equals(id)) +// return material; +// } +// return null; +// } + + /** @param id The ID of the node to fetch. + * @return The {@link Node} with the specified id, or null if not found. */ + public Node getNode(final String id) { + return getNode(id, true); + } + + /** @param id The ID of the node to fetch. + * @param recursive false to fetch a root node only, true to search the entire node tree for the specified node. + * @return The {@link Node} with the specified id, or null if not found. */ + public Node getNode(final String id, boolean recursive) { + return getNode(id, recursive, false); + } + + /** @param id The ID of the node to fetch. + * @param recursive false to fetch a root node only, true to search the entire node tree for the specified node. + * @param ignoreCase whether to use case sensitivity when comparing the node id. + * @return The {@link Node} with the specified id, or null if not found. */ + public Node getNode(final String id, boolean recursive, boolean ignoreCase) { + return Node.getNode(nodes, id, recursive, ignoreCase); + } +}