initial
This commit is contained in:
12
vscript/languages/squirrel/sqdbg/.project
Normal file
12
vscript/languages/squirrel/sqdbg/.project
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>sqdbgTest</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.squirrel_lang.sqdev.squirrelnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
BIN
vscript/languages/squirrel/sqdbg/doc/sqdbg.chm
Normal file
BIN
vscript/languages/squirrel/sqdbg/doc/sqdbg.chm
Normal file
Binary file not shown.
494
vscript/languages/squirrel/sqdbg/doc/sqdbg.pdf
Normal file
494
vscript/languages/squirrel/sqdbg/doc/sqdbg.pdf
Normal file
@@ -0,0 +1,494 @@
|
||||
%PDF-1.3
|
||||
%<25><><EFBFBD><EFBFBD>
|
||||
4 0 obj
|
||||
<< /Type /Info
|
||||
/Producer (FOP 0.20.5) >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Length 196 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GaqdY]+0EX&;B(lT41D@*+tSN;/4Ut;R\G?OEDk#&6F++6)>^%qht(5^"An`O:%O/^cqrFJZf5C'FZgXJMj2O1`/_b3XrfU>BYFS9hM,(@3_nF3gBoT9Bc3qXP4mt@uMS5.jO.p#ClaLCf.d3?VEJJ<[f`FTjmgRGAS)Ccn@nXebn8]oeWu"qgWh^iWC>m0t%~>
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 5 0 R
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Length 1032 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gasao968i1&AJ$CE(_rr;`u\TDGNtK1[1kLh:`p3KHqH]*!CH`mu*-((.W6uT(0&.o'MVOh.MXI+(H"fnJYuh,!bfF7"P/f.#\3ITJY<\-jii&U@5SKShuXoniO49dM2/YRh4D)V6*SD;n]*>Y%oLMAVbt#oFkf.N5l'T"1[mbHe[m"]Ltb5Dg>*S&d(Z[C`:rl'b09+++Z$SDqFFH40_"A<]A/Art-QNPG01U=6;/UWrG.#,2^ZM^.E;WVq-(C$jTJk3uk.)]'Vq_N^QdDo.BZ6**>d*W4O5OMY/o$W&lcb#d'bWF=/Kbhg7qA%pVZOEP(DXpLI`sUf/WLPn+n"3oN(ZcqaCVE=QR1Gf^S8_NnM)\S#;blp\i1agl%]q,ps5?'9@g582-SVc-qn9mbJs,$E7'g*nL#=so:Y=@)[H&/DQ]!-2g2Sr[G'inY<lB.@-:pIq+#]ShO)(<WfGTd.!?<ak1>Y"eVaU[rhBW8g>L1#X*UbuiN2W(tu\\JID7K'9dtlZ0(o<>D6FW@SnF!+g*2X!#Pqeh83A[9U59+:+jIS<:0hrKS_M0b1+u.`l_55eED8/Z+c)QCq_Ks$[<'!O'6s!gV\K*5-nX(X71TcDeOLO"B)EG`"&ZpM8[t6P7fS_@RIJJ6]YXe3PU19QJ^k\lVYl";#Te`d12]At[%@]l=u=TjIq'E5Gcq(/\-uNcKFU[\/F1;`cU\7\DXMeJ7.bZsdD*C*!@)L'8O:T`Z"eQA0r`>pqBF"<&&:SN(Xnf'UP+cb[8.)<%*['SRURShGgs+,./IB>kiUR#<5h\Q^9dN!:2H#LkOfCDtFUTr-p6%jej'EFOU[qe*&Uo[XC%$P:a;b(6gJgM(,gLVGbMe+")*-1VY"'1eY)BY;c[f3EQG6@\ufcb%;uGCR;d\^?otfbREY^KEbR,`[gm:u/4`kSJlJD9;#G8P8TVFb&.JrZ3l/CnLa#NV#El=i7A-3)+at]KTka-i6>G^BDgQQ([eq*LN+fW*4ROgh2t.Rl-50g&1q"H]<^~>
|
||||
endstream
|
||||
endobj
|
||||
8 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 7 0 R
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<< /Length 71 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Garg^iGoCd.c`?]8EV`b1=.gR0K1`91K?+0ZOMGdU/Zh'Y!=Te%#&:?HH*JE!<E/X&V'~>
|
||||
endstream
|
||||
endobj
|
||||
10 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 9 0 R
|
||||
>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<< /Length 500 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gb"/h4)]a*&:etR`JnDaMdI=@V@P+]qN/1d6QUtO9qeC?l-HOB8Xr1GUoFN2F^k/oR):!5dpWGA34n<<'k%F4/;PDZ-q*d'TGWM.N`2)J$2PAX6Tl@69b7(o.?[:Q+=sjiiC-o!VPl_*n-&U-VNsIlS&JuGB;NfU@Z_5%BUb;#QUJE0W1T%k>ak1qSt!klKQO7$h9>R6&eYfioViB3kt3uUd59gL.kd@GKrGhDZYU&F\m@<.'%5[1j,RQQGKeEW5^>5eB1:\31c"`I=#9MT%Cb0Dam9TGl$q.OlD;p1n':)d@HqE,^%fBI<S$9-S@cr*ZKkd>+X-5P38:Y+p95\Q^;:cXomD3IoRdC4RE?5-7K?$8oo>,qOA:j;VVqc,$(5gPR]Y%34Dd>M6MdNgRVkSAD#:SJC;0$JK(5u[NJ)t<oHV>sQ/\rgnD=.lDB,PW,n`V`Oep2c(>K,s]g"4eKHH_nFs`9O/La4cKPHc4>PNDk"5=c#SH~>
|
||||
endstream
|
||||
endobj
|
||||
12 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 11 0 R
|
||||
/Annots 13 0 R
|
||||
>>
|
||||
endobj
|
||||
13 0 obj
|
||||
[
|
||||
14 0 R
|
||||
16 0 R
|
||||
18 0 R
|
||||
20 0 R
|
||||
22 0 R
|
||||
24 0 R
|
||||
26 0 R
|
||||
]
|
||||
endobj
|
||||
14 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 655.001 187.48 645.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 15 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
16 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 644.001 183.43 634.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 17 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
18 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 633.001 242.31 623.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 19 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
20 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 622.001 230.65 612.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 21 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
22 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 611.001 189.14 601.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 23 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
24 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 600.001 183.43 590.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 25 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
26 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 589.001 142.77 579.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 27 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
28 0 obj
|
||||
<< /Length 1965 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gatm<>B?Pt'RnB3@(-Z']8csPhKBu]nRgV!g.>!3Th?_b6+1J^&:s5GSc8@)&0QODZIA(57H^=bqfFHR0:\fD:TB(*A6Gqn/<47TH)*tdr"R8k8<s\-7YYMIc<C'fEk1bhSBuh/MG4c;Q>@MgM1XHgZQa8+'q'!+b<kPmEde1E\tmE?)U-a/'O3=#6UQ`F1L&-SbR-LZn`;%hB[3Sf_:L\'a+tl.2es$6>6C&a1n54Ff.,Hn,)gTKUg?e+B[!&,+f-ID*(ne=\34NBj#["i':*>NKt`n/8W4Q=!.5ZPW\1$^J6+TRCD@]8/YUp\m,!In[ZRD%9PS`pF`@la<GWflgrfEGj3'QD?T<3(i<(I%E)&PGI*G`!/guRNA1&eM'>>er(^YfTcSW`LVe]Cq"nAd'"CL+iB^A0>7*Z:Aa-IO"L2t_*$cm%9=rSpH[Q%1O"OG(hUJfH(\o$2&pW19+/B\3OLfM?o+E-JSQ][rc9&bljbM0AnD9%XG,K/O,-kGq0%VN&'rPEb3$M1L64^ZTIZWqXdM)lenrTIB27k`]B!@=?$[Fsn.dTkBuAE$5/\15KP?8aB'PKfsM3@"=USt^!MdW*`7LmT#Rh=_NgoSmf-=,42MEH<iJ7AXu:T0hto9bqWg:_`E4NE?0l$YqSTQGk`-(FBj*/.)3J`;bI`<gO1JLfg]H$M>F8ME*l46u8DslKuMb<jmj^7oJ=M6:VgF?NQ#hjE)_rRf?.\4EDZsI?FrG(8?C]",;+5>UlLh#H0j&7HpE:_&aUC9.4VMXY6F"=:jTuZkVa",SIu?_K?cZIP3NNk$GP7lQE&Q<A:.G6?<`O#F&s;rZr&U<jSlP?bc*i1A5creI,/pRsQo!6d(2b@5j1YU)<_AOl[kMeGSFT(PX@ah6=fWA/Ht_N0?mI'3`F\n^a1'E+CT2#]4r1Oha-%#\cV*j?p1e(6:>"I]B1OIgRja'6ipQ?<H+6_3=5)F4%5f59G#.ZJC_aZG#_,$'up4D&VE1_0l&XBP^,Kn$oB%HfBhG8X#,m_Gb7[Y)_?5C@9@To1Yf[RPck[ehHf]2/?SWb>7,bp`5V-R]Jpuir1>WDgq(=b2cB9SHi'eJlbfM9T[WTJi1\>=:bi607+)u@Kpt>*Pu'8j8JEq[7LJ1,mjC3pN=<]4,9iFVC!6RRZ0.,Q8(YLDHr^JjrpXT,joW?gW&2=`c-rmh6pU!c2r?fMH*KG=B\orR<,+'05\::'\2F.ggb8d-d:doqo`jl7\/2s6Jg0hU>M;u)W&e1oNF;]glO8-E[;KeUY:gQP?iNDm'^%<?2?o`qC@VIl::W\rV"m:fsZNMN7@^gnTT28@22utN&7SYA`8s;\Gfk1'"`e!$EP(u$Fp*RbrPYM"nt=1e*PLGH!`dA.OBbr6u`/R^5N`>?EfWmW%96D\-P[qhAs+YTDO$j0J\X1#>4OrNOaX>V(5NaY%)"oa7)n)(0-&^XL<MJh*$_cmmf=u"/f&2ji`^:cd,BY9&M*4)/K+E=3@e*<*g\M*^"!Z0-ON82(p-f)Ue>P[&bIHpAXFFh)fM&4;g6@o:,8gUD[]*T1>E])I5I1?]XV8B0&&WQ/11Eic]Y:E([t3hQ*CC9sI]/C;%?@-Kc1(U0m'ocLg)hlJ*9MX0P]8#q'[VqD*1_Xe[EbbFqiG`p%YKpcG#%3HRUuTrJfV>o;J^GmU4$qPPd?Y"+]'rOF_U:>BSj<ZbEkYH'ZdVi^7e^OV_2\qX2[Q-7PJX`.7,65EW&q8MV4??V#Z-OqS%?maKM^nf2-c8</FCcA+Xm&eCMahuBJT!GXD.5Ea)3h.;/76hVnqWVED^78O&B)t\2V9Z!AfutW*oGcA@a8QW$*T7ogofUE]SI]jC8e&u;WB:[6T'HllS45rt<c!!L6/fV<S>0`j^KMM6WPKe_mU*pO*XWN+dc0KYkecS%KT&fUp[qiITW3-Zbb=m:3e^f<(D0ffdf~>
|
||||
endstream
|
||||
endobj
|
||||
29 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 28 0 R
|
||||
>>
|
||||
endobj
|
||||
30 0 obj
|
||||
<< /Length 822 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gas1]>u03/'RfGR0MI[.$/@MKj$XOk1c6?g.dc4fP6e0\j-4:).8C3\e,K67-H--nP_[3&\`]R]fb^4970nt_>p-G5$Pj`c>l>dqr'4UEf7OJ4nHA9M/>#)IZVnlBooC`8#NDW^HSpEtH8)!$pmYNRnfqmBkm&7<_gT[q>.iXaqZEW&6\KZZH+M5dX;"%M$8(FV[EP[&EMd`?361Q6d(eq!;r=\`SSYj"k&g=19To<5l(2_1,i)6O)Ld8]D.?dbjs--T/<]GY%q#qD2&KieLNYCMWBqKsAMmE:11-E<l>]U*.N^R,KiD75B4\2$&&Y&7OHS-`ji734*Jao.(p_0DT+sXZ!kgMK?LR+!E5n)d`.rutgk[Iu%d0UL3D>1eqW7cs_#'>=9E*,i6oW_F./(rq_]b(/C_mp"LdP+&GW^s5;8i9\%hbdfT%4(6^<W$E<iC;+kAjl\MnD`RVK2?>>hSF6)1`LVle#+X[-=/LeY/5C!1>t?h`R>5^6cP)^!oO2H6hi>KYXgoLCS48.3DPe<7U>D,noJ'TR0A+]BdDuZ:_$/;>7g`C&7cR*ad.`W9UigRtL*(4UO@MA]#Vt0s``2FMlF[PEF\DV3%F\YdQD>+#d2']]QgufbKX26Jj&!^+)a%,$K4V+Ud[9in?=%@2+G<@d[N0TRS^jl[?=]1TuQ!K_n%;(Y]i$(kZ6^>R$^'<j.5RoDWd4MQ3$[X#Fqm[Y`ll_0WALh.@D2KA4t/Mp?CM['q_Y&>Xhm^Kpf7,fi%,:1'Bcd*=d]!s=A34/oTTa`cLmq0bDG?d`Fc01euYig/@U7/m99iIp:~>
|
||||
endstream
|
||||
endobj
|
||||
31 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 30 0 R
|
||||
>>
|
||||
endobj
|
||||
32 0 obj
|
||||
<< /Length 1571 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GatTIgMYb(o\ElJ[jFAWLn_',;q!'tL)/%QmE7U+Zpi_;AC6MfBA(n'OsoikAfM%CJ;!+Tgi[MYj`GN_9cVJLED2neEoK-\$$KSHK:U(NXqSe]$N8&6DOeI;5-='MZJs@opS%p>Z($ElM2-iTa4m(,igq`)_=@akFoHBXJ$g2#'To'>37J]HaRt`tgLiFJ<i]D0_fdo.4LOl3Aju"(#fj[>2irq!VdRejE]:P!!`GPeM\(4`<2;A`%McC*1@Q6V7o3snRaS)4i];'uN<\fZYON.DL]i1m?hs?#8E[%G4QfW>BW,_?+:/TN2"dIOGP>0G^J1mq?iJFX'&u,DSkI))(.C+p]dO_=c>'cEDsm(t^ARc+^+.-?c#g6Q"$i-<I$M#PTZXYj,_3?2KIdXXkB;pH!!Pb@^D%kj4CQE".k.K88gTstrn_u6=9@:a$3PrC6&U=D[^+3$TTs)K3I<XacV$j!7-u[;C!L`.0$:)L(BqtjVI1>d!Ca$;(YLqt^+jS"$bBcHZHD(KVfh`>9Bq`M0]3q"*Z_9:Jaeb%4-VJh9@@:gUk'Jqh467_q7`ckgU?tc0mZ.BKYt/':"HuAb!>%[e*Y-!Xg+sm@'`)XV.;SW$$h3sW^l`^*q!@XcaQW'E`c*")7rFb=o[;R+(4)1__@j5*uh0_P?!aGCcYYfnJcB(m$d&ce-,qA&*8$sCrmn(e8Ja1L),h]@f^am;dFMtq/1jVlO3*Ml&`P7B3A3lVG0nsJB2EJ1XEA#lj]5-6*opsTPMn>>u/s%j^`OLmb!O704PgQ$uckV2giO8V!I$k*]'C?MoI8qB)f/*-!?*6l6H)(2AREZ,t)L@`EMa7?s8EhE,E(P$@q1]#I<EZ8ctp,S9"]`eo\Bf@ZC71M2hD?@Dqihj?&c2jbn[F+gu"f>`7c+TE`em9FY+=K>-*G692G&%HcfB3=Buc4/d-KYG!!IY&o\;Li;tk;!VO0_7%"<%?&hsK%ukX(VEVH%8tqe:QlD/oX-*KN2=@&r"03AWPJQe3B.gsYu$:KV^r";$+jPAB`'>gK;XA"g[>A?R[)g2NN`V/8bMJfngV123gcpOf[cA]lpLImO8'de_kWM[ie8ceO'2%6U"&?bjnk?+6I]a@7_;a4Y%0#RF)0qaWi^qO2q%/u*km,l*np.'(lu46d:;#(6@[3B)m,I_:od#+ZYk'RQ/Hf%*ia8(neCFpK+4UCJSh[)\RfX2JhK+d3Odbq(Fh(oN=#&WW&t,@?]W*uZ0oVA3<tnNK4ED06`:fBG`LCaJm91)09-;Fh4oi4X5IF\R,U,\;QJE6mjfG!&ep=hqS:[7PuTPfk8O^TnX.k,b$$s52s1(RePlMA4(55lbpK7;`2MRA>(GccWH4LGN-_a"5gYaYN>"EEH==#)p>od\+3^8M!$hP+gSrVX'B#rn\JCnPHG_&,)?5cOT7^8=W'2nXbEraqZLs$ASY![S_*Q[U<r$4WBAi0%9C/:$47NURc2?[ghR(%j2g]&D(%,qfh,_%($J5\;6&8t`KDiMB._8/6!eN?\^A\(cY;TZ*S`siVi<+\CJ,U"SnJA4W:s/~>
|
||||
endstream
|
||||
endobj
|
||||
33 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 32 0 R
|
||||
>>
|
||||
endobj
|
||||
34 0 obj
|
||||
<< /Length 941 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GatU1hf"u<&:Vr4_.+[3'SCsKHYTs3l[GdJbFY$!EkkMP`2:Og[/KYR`oK6K>A4``]!HhBh0hKESRo.f$P[h6n,k<oB7X./O;I*kH"`W0`FKk_..sm*pLF3mpA3qLlW&--rp7P>H]nT'eQ`mUC>o-`Z;2AhhEq`+;/e:B;>4$oLU"*b6rm9<?I8ARWi3:\qd@9Y2bD@;78gOYr2mEGb6W<h7*?0/S_+*lqu'.l/#tZ\60gnBMPTXJ<hQc7jFWXCQ'<fNQ>kI)h::\`B94:)@:^fkW1B"\TTP*c50gdT"O52Q2rOqE`@3BBLJ.a>g*'Ts`gL;3B"r&b>56S-L.d<W%?V1'@2B(o]$mbogSQ+9j;28i*gl5(!b*HD!Esq*=RI#k698.A;mVuB-Fe]).9<)V!b<pRNI14a-NdIhgL$W(68V2mQ.XK^_ZK.\7OOrdNK>l0+7Hd%^Zub>buY;*CT,`CD-C&P]E27"D9/nflgN1MlCL"?4''t+Yt[T+ja_@&cABm+EB:?Ih'Zgp,s8*-D]hqBo]?tg^%BJB?M`3@4]'KTZD#PjF(@l5>\FWO/RZt*Vj1Jd*+sbdf&>SNe1I4b/(XaBLQN6;UX^]0cgD+24"mEbO4>_Ve/8aWjZK"qpANCOQ8f1.n(>^4Q6c.Gg%F\_Et4q@hM?/dO.\,bM/tC0J?PQNNm5*`a2]">KC4Z7Yd90R5I!$S>jM_p\dWVq3R-qS:NV:mGD-b(VU/=[[n#Z/@>[QUY<&224,V&'="fN)e`,Bm'?DL5/H*Y!FeLd3ZgUFc@9ckdj-<P9DT#?j@KRNg:=lQh(ScO>h/mX_ZB)"/?+h[:]=p?\*#thc.Nc]=p`FS1L&(JRN5Kau1,5+U^l1m!<8/ikcTJ5D?^N0(Nq>X$e#2(U!WRnCELkQm#7:+!(\+7ClJ?@<@uH?JkRY5-16q~>
|
||||
endstream
|
||||
endobj
|
||||
35 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 34 0 R
|
||||
>>
|
||||
endobj
|
||||
36 0 obj
|
||||
<< /Length 287 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GasJM_/@+D%#44r$6MQC-Ae9M>`gpYgns0k9o.14H6=5F&:=>/Q>R*XTj4\os1ZFngl(D1JS'"a^m@C)7OX@4.EF><Y\o2]1[mJN)a/thp_q%3pdN4P7QsZOOZ\K)&iK?tlVH/`P,W^=me*+/bk9q<^MNJ%c*@[VS;cDmRhINNZf<]/p4d@lLR?]6E0o,;L-9qHX'".'e%jSrEE0u`DUrq9`B%%BBJ1oa[QJl@n(tM%A?=,X>F0)mWht;E]SO,5b#q412`=ou,c,oV3.-h`4ms=llYUJ~>
|
||||
endstream
|
||||
endobj
|
||||
37 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 36 0 R
|
||||
/Annots 38 0 R
|
||||
>>
|
||||
endobj
|
||||
38 0 obj
|
||||
[
|
||||
]
|
||||
endobj
|
||||
41 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\123\0\161\0\165\0\151\0\162\0\162\0\145\0\154\0\40\0\122\0\145\0\155\0\157\0\164\0\145\0\40\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162\0\40\0\61\0\56\0\60)
|
||||
/Parent 39 0 R
|
||||
/Next 43 0 R
|
||||
/A 40 0 R
|
||||
>> endobj
|
||||
43 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\124\0\141\0\142\0\154\0\145\0\40\0\157\0\146\0\40\0\103\0\157\0\156\0\164\0\145\0\156\0\164\0\163)
|
||||
/Parent 39 0 R
|
||||
/Prev 41 0 R
|
||||
/Next 44 0 R
|
||||
/A 42 0 R
|
||||
>> endobj
|
||||
44 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\103\0\150\0\141\0\160\0\164\0\145\0\162\0\240\0\61\0\56\0\240\0\124\0\150\0\145\0\40\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 39 0 R
|
||||
/First 45 0 R
|
||||
/Last 47 0 R
|
||||
/Prev 43 0 R
|
||||
/Next 48 0 R
|
||||
/Count -3
|
||||
/A 15 0 R
|
||||
>> endobj
|
||||
45 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\117\0\166\0\145\0\162\0\166\0\151\0\145\0\167)
|
||||
/Parent 44 0 R
|
||||
/Next 46 0 R
|
||||
/A 17 0 R
|
||||
>> endobj
|
||||
46 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\111\0\156\0\164\0\145\0\147\0\162\0\141\0\164\0\151\0\156\0\147\0\40\0\164\0\150\0\145\0\40\0\144\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 44 0 R
|
||||
/Prev 45 0 R
|
||||
/Next 47 0 R
|
||||
/A 19 0 R
|
||||
>> endobj
|
||||
47 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\124\0\150\0\145\0\40\0\156\0\145\0\164\0\167\0\157\0\162\0\153\0\40\0\160\0\162\0\157\0\164\0\157\0\143\0\157\0\154)
|
||||
/Parent 44 0 R
|
||||
/Prev 46 0 R
|
||||
/A 21 0 R
|
||||
>> endobj
|
||||
48 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\103\0\150\0\141\0\160\0\164\0\145\0\162\0\240\0\62\0\56\0\240\0\101\0\120\0\111\0\40\0\122\0\145\0\146\0\145\0\162\0\145\0\156\0\143\0\145)
|
||||
/Parent 39 0 R
|
||||
/First 49 0 R
|
||||
/Last 49 0 R
|
||||
/Prev 44 0 R
|
||||
/Next 50 0 R
|
||||
/Count -1
|
||||
/A 23 0 R
|
||||
>> endobj
|
||||
49 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 48 0 R
|
||||
/A 25 0 R
|
||||
>> endobj
|
||||
50 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\111\0\156\0\144\0\145\0\170)
|
||||
/Parent 39 0 R
|
||||
/Prev 48 0 R
|
||||
/A 27 0 R
|
||||
>> endobj
|
||||
51 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F3
|
||||
/BaseFont /Helvetica-Bold
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
52 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F5
|
||||
/BaseFont /Times-Roman
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
53 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F10
|
||||
/BaseFont /Courier-Oblique
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
54 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F6
|
||||
/BaseFont /Times-Italic
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
55 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F1
|
||||
/BaseFont /Helvetica
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
56 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F11
|
||||
/BaseFont /Courier-Bold
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
57 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F9
|
||||
/BaseFont /Courier
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Count 9
|
||||
/Kids [6 0 R 8 0 R 10 0 R 12 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R ] >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
/Outlines 39 0 R
|
||||
/PageMode /UseOutlines
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Font << /F3 51 0 R /F5 52 0 R /F10 53 0 R /F1 55 0 R /F6 54 0 R /F9 57 0 R /F11 56 0 R >>
|
||||
/ProcSet [ /PDF /ImageC /Text ] >>
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
17 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 666.009 null]
|
||||
>>
|
||||
endobj
|
||||
19 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 589.684 null]
|
||||
>>
|
||||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [31 0 R /XYZ 115.0 448.64 null]
|
||||
>>
|
||||
endobj
|
||||
23 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [33 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
25 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [33 0 R /XYZ 115.0 687.009 null]
|
||||
>>
|
||||
endobj
|
||||
27 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [37 0 R /XYZ 67.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
39 0 obj
|
||||
<<
|
||||
/First 41 0 R
|
||||
/Last 50 0 R
|
||||
>> endobj
|
||||
40 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [10 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
42 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [12 0 R /XYZ 115.0 715.0 null]
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 58
|
||||
0000000000 65535 f
|
||||
0000012880 00000 n
|
||||
0000012993 00000 n
|
||||
0000013085 00000 n
|
||||
0000000015 00000 n
|
||||
0000000071 00000 n
|
||||
0000000358 00000 n
|
||||
0000000464 00000 n
|
||||
0000001588 00000 n
|
||||
0000001694 00000 n
|
||||
0000001855 00000 n
|
||||
0000001962 00000 n
|
||||
0000002554 00000 n
|
||||
0000002677 00000 n
|
||||
0000002746 00000 n
|
||||
0000013232 00000 n
|
||||
0000002882 00000 n
|
||||
0000013297 00000 n
|
||||
0000003018 00000 n
|
||||
0000013364 00000 n
|
||||
0000003154 00000 n
|
||||
0000013431 00000 n
|
||||
0000003290 00000 n
|
||||
0000013497 00000 n
|
||||
0000003426 00000 n
|
||||
0000013562 00000 n
|
||||
0000003562 00000 n
|
||||
0000013629 00000 n
|
||||
0000003698 00000 n
|
||||
0000005756 00000 n
|
||||
0000005864 00000 n
|
||||
0000006778 00000 n
|
||||
0000006886 00000 n
|
||||
0000008550 00000 n
|
||||
0000008658 00000 n
|
||||
0000009691 00000 n
|
||||
0000009799 00000 n
|
||||
0000010178 00000 n
|
||||
0000010301 00000 n
|
||||
0000013693 00000 n
|
||||
0000013744 00000 n
|
||||
0000010321 00000 n
|
||||
0000013809 00000 n
|
||||
0000010565 00000 n
|
||||
0000010761 00000 n
|
||||
0000011032 00000 n
|
||||
0000011162 00000 n
|
||||
0000011400 00000 n
|
||||
0000011600 00000 n
|
||||
0000011877 00000 n
|
||||
0000011993 00000 n
|
||||
0000012105 00000 n
|
||||
0000012218 00000 n
|
||||
0000012328 00000 n
|
||||
0000012443 00000 n
|
||||
0000012554 00000 n
|
||||
0000012662 00000 n
|
||||
0000012774 00000 n
|
||||
trailer
|
||||
<<
|
||||
/Size 58
|
||||
/Root 2 0 R
|
||||
/Info 4 0 R
|
||||
>>
|
||||
startxref
|
||||
13874
|
||||
%%EOF
|
||||
95
vscript/languages/squirrel/sqdbg/main.cpp
Normal file
95
vscript/languages/squirrel/sqdbg/main.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
see copyright notice in sqrdbg.h
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <winsock.h>
|
||||
#include <squirrel.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sqstdblob.h>
|
||||
#include <sqstdio.h>
|
||||
#include <sqstdaux.h>
|
||||
#include "sqrdbg.h"
|
||||
#include "sqdbgserver.h"
|
||||
|
||||
#pragma comment (lib ,"Ws2_32.lib")
|
||||
|
||||
#ifdef _UNICODE
|
||||
#define scfprintf fwprintf
|
||||
#define scvprintf vwprintf
|
||||
#else
|
||||
#define scfprintf fprintf
|
||||
#define scvprintf vprintf
|
||||
#endif
|
||||
|
||||
|
||||
void printfunc(HSQUIRRELVM v,const SQChar *s,...)
|
||||
{
|
||||
va_list vl;
|
||||
va_start(vl, s);
|
||||
scvprintf( s, vl);
|
||||
va_end(vl);
|
||||
}
|
||||
|
||||
void PrintError(HSQUIRRELVM v)
|
||||
{
|
||||
const SQChar *err;
|
||||
sq_getlasterror(v);
|
||||
if(SQ_SUCCEEDED(sq_getstring(v,-1,&err))) {
|
||||
scprintf(_SC("SQDBG error : %s"),err);
|
||||
}else {
|
||||
scprintf(_SC("SQDBG error"),err);
|
||||
}
|
||||
sq_pop(v,1);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if(argc < 2){
|
||||
scprintf(_SC("SQDBG error : no file specified"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
HSQUIRRELVM v = sq_open(1024);
|
||||
sqstd_seterrorhandlers(v);
|
||||
|
||||
//!! INITIALIZES THE DEBUGGER ON THE TCP PORT 1234
|
||||
//!! ENABLES AUTOUPDATE
|
||||
HSQREMOTEDBG rdbg = sq_rdbg_init(v,1234,SQTrue);
|
||||
if(rdbg) {
|
||||
|
||||
//!! ENABLES DEBUG INFO GENERATION(for the compiler)
|
||||
sq_enabledebuginfo(v,SQTrue);
|
||||
|
||||
sq_setprintfunc(v,printfunc);
|
||||
|
||||
//!! SUSPENDS THE APP UNTIL THE DEBUGGER CLIENT CONNECTS
|
||||
if(SQ_SUCCEEDED(sq_rdbg_waitforconnections(rdbg))) {
|
||||
scprintf(_SC("connected\n"));
|
||||
|
||||
const SQChar *fname=NULL;
|
||||
#ifdef _UNICODE
|
||||
SQChar sTemp[256];
|
||||
mbstowcs(sTemp,argv[1],(int)strlen(argv[1])+1);
|
||||
fname=sTemp;
|
||||
#else
|
||||
fname=argv[1];
|
||||
#endif
|
||||
//!!REGISTERS STANDARDS LIBS
|
||||
sq_pushroottable(v);
|
||||
sqstd_register_bloblib(v);
|
||||
sqstd_register_iolib(v);
|
||||
//!!EXECUTE A SCTIPT
|
||||
if(SQ_FAILED(sqstd_dofile(v,fname,SQFalse,SQTrue))) {
|
||||
PrintError(v);
|
||||
}
|
||||
}
|
||||
//!! CLEANUP
|
||||
sq_rdbg_shutdown(rdbg);
|
||||
}
|
||||
else {
|
||||
PrintError(v);
|
||||
}
|
||||
sq_close(v);
|
||||
return 0;
|
||||
}
|
||||
13
vscript/languages/squirrel/sqdbg/makebin.pl
Normal file
13
vscript/languages/squirrel/sqdbg/makebin.pl
Normal file
@@ -0,0 +1,13 @@
|
||||
#!perl
|
||||
open( HANDLE,shift) || die;
|
||||
undef $/;
|
||||
binmode HANDLE;
|
||||
$data=<HANDLE>;
|
||||
$ctr=0;
|
||||
for($i=0;$i<length($data);$i++)
|
||||
{
|
||||
$out.=sprintf("0x%02x,", unpack("C", substr($data,$i,1)) );
|
||||
$out.="\n" if ( ( $ctr % 20) == 19);
|
||||
$ctr++;
|
||||
}
|
||||
print $out;
|
||||
9
vscript/languages/squirrel/sqdbg/ps3socket.h
Normal file
9
vscript/languages/squirrel/sqdbg/ps3socket.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifdef _PS3
|
||||
#include <unistd.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include "tier0/threadtools.h"
|
||||
typedef int SOCKET;
|
||||
#define INVALID_SOCKET -1
|
||||
#endif
|
||||
266
vscript/languages/squirrel/sqdbg/serialize_state.inl
Normal file
266
vscript/languages/squirrel/sqdbg/serialize_state.inl
Normal file
@@ -0,0 +1,266 @@
|
||||
static const SQChar serialize_state_nut[] = {
|
||||
0x2f,0x2a,0x0d,0x0a,0x09,0x73,0x65,0x65,0x20,0x63,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x6e,
|
||||
0x6f,0x74,0x69,0x63,0x65,0x20,0x69,0x6e,0x20,0x73,0x71,0x72,0x64,0x62,0x67,0x2e,0x68,0x0d,0x0a,0x2a,
|
||||
0x2f,0x0d,0x0a,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x73,0x63,0x6f,0x70,
|
||||
0x65,0x3b,0x0d,0x0a,0x69,0x66,0x20,0x28,0x20,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,0x74,0x74,0x61,
|
||||
0x62,0x6c,0x65,0x28,0x29,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x29,0x0d,0x0a,0x7b,0x0d,0x0a,0x09,
|
||||
0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x73,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x3a,0x3a,0x67,0x65,0x74,
|
||||
0x72,0x6f,0x6f,0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0d,0x0a,0x09,0x3a,0x3a,0x73,0x65,0x74,
|
||||
0x72,0x6f,0x6f,0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x20,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,0x74,
|
||||
0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x29,0x3b,0x0d,0x0a,0x7d,
|
||||
0x0d,0x0a,0x74,0x72,0x79,0x20,0x7b,0x0d,0x0a,0x09,0x0d,0x0a,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x6f,0x62,
|
||||
0x6a,0x73,0x5f,0x72,0x65,0x67,0x20,0x3d,0x20,0x7b,0x20,0x6d,0x61,0x78,0x69,0x64,0x3d,0x30,0x20,0x2c,
|
||||
0x72,0x65,0x66,0x73,0x3d,0x7b,0x7d,0x20,0x7d,0x0d,0x0a,0x0d,0x0a,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,
|
||||
0x5f,0x74,0x79,0x70,0x65,0x73,0x20,0x3c,0x2d,0x20,0x7b,0x0d,0x0a,0x09,0x5b,0x22,0x74,0x61,0x62,0x6c,
|
||||
0x65,0x22,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x61,0x72,0x72,0x61,
|
||||
0x79,0x22,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x63,0x6c,0x61,0x73,
|
||||
0x73,0x22,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x69,0x6e,0x73,0x74,
|
||||
0x61,0x6e,0x63,0x65,0x22,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x77,
|
||||
0x65,0x61,0x6b,0x72,0x65,0x66,0x22,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0d,0x0a,0x7d,0x0d,
|
||||
0x0a,0x0d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x5f,0x72,0x65,
|
||||
0x66,0x73,0x28,0x74,0x29,0x3a,0x28,0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,0x29,0x0d,0x0a,0x7b,0x0d,
|
||||
0x0a,0x09,0x69,0x66,0x28,0x74,0x20,0x3d,0x3d,0x20,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,0x74,0x74,
|
||||
0x61,0x62,0x6c,0x65,0x28,0x29,0x29,0x0d,0x0a,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0d,0x0a,
|
||||
0x09,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x6f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x3a,0x3a,0x74,0x79,0x70,
|
||||
0x65,0x28,0x74,0x29,0x3b,0x0d,0x0a,0x09,0x69,0x66,0x28,0x6f,0x74,0x79,0x70,0x65,0x20,0x69,0x6e,0x20,
|
||||
0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x5f,0x74,0x79,0x70,0x65,0x73,0x29,0x0d,0x0a,0x09,0x7b,0x0d,0x0a,
|
||||
0x09,0x09,0x69,0x66,0x28,0x21,0x28,0x74,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,
|
||||
0x2e,0x72,0x65,0x66,0x73,0x29,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x6f,0x62,0x6a,0x73,0x5f,0x72,
|
||||
0x65,0x67,0x2e,0x72,0x65,0x66,0x73,0x5b,0x74,0x5d,0x20,0x3c,0x2d,0x20,0x6f,0x62,0x6a,0x73,0x5f,0x72,
|
||||
0x65,0x67,0x2e,0x6d,0x61,0x78,0x69,0x64,0x2b,0x2b,0x3b,0x0d,0x0a,0x09,0x09,0x0d,0x0a,0x09,0x09,0x20,
|
||||
0x20,0x20,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x74,0x2c,0x66,
|
||||
0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x2c,0x69,0x2c,0x76,0x61,0x6c,0x29,0x3a,0x28,0x6f,0x62,
|
||||
0x6a,0x73,0x5f,0x72,0x65,0x67,0x29,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x7b,0x0d,0x0a,0x09,0x09,
|
||||
0x09,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x5f,0x72,0x65,0x66,0x73,0x28,0x76,0x61,0x6c,0x29,
|
||||
0x3b,0x0d,0x0a,0x09,0x09,0x09,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x5f,0x72,0x65,0x66,0x73,
|
||||
0x28,0x69,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x7d,0x29,0x0d,0x0a,0x09,0x09,0x7d,0x0d,
|
||||
0x0a,0x09,0x09,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,
|
||||
0x6f,0x6e,0x20,0x67,0x65,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x76,0x29,0x3a,0x28,0x6f,0x62,0x6a,0x73,
|
||||
0x5f,0x72,0x65,0x67,0x29,0x0d,0x0a,0x7b,0x0d,0x0a,0x09,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x3a,0x3a,
|
||||
0x74,0x79,0x70,0x65,0x28,0x76,0x29,0x29,0x0d,0x0a,0x09,0x7b,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,
|
||||
0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x61,
|
||||
0x72,0x72,0x61,0x79,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x63,0x6c,0x61,0x73,
|
||||
0x73,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,
|
||||
0x65,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x62,0x6a,0x73,0x5f,
|
||||
0x72,0x65,0x67,0x2e,0x72,0x65,0x66,0x73,0x5b,0x76,0x5d,0x2e,0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,
|
||||
0x28,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,
|
||||
0x22,0x3a,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x66,0x6c,0x6f,0x61,0x74,0x22,0x3a,0x0d,
|
||||
0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x3b,0x0d,0x0a,0x09,0x09,
|
||||
0x63,0x61,0x73,0x65,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,
|
||||
0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x2e,0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3a,0x0d,0x0a,
|
||||
0x09,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x3b,0x0d,0x0a,0x09,0x09,0x63,0x61,0x73,0x65,
|
||||
0x20,0x22,0x6e,0x75,0x6c,0x6c,0x22,0x3a,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,
|
||||
0x72,0x6e,0x20,0x22,0x6e,0x75,0x6c,0x6c,0x22,0x3b,0x0d,0x0a,0x09,0x09,0x64,0x65,0x66,0x61,0x75,0x6c,
|
||||
0x74,0x3a,0x0d,0x0a,0x09,0x09,0x09,0x0d,0x0a,0x09,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,
|
||||
0x61,0x63,0x6b,0x5f,0x74,0x79,0x70,0x65,0x28,0x3a,0x3a,0x74,0x79,0x70,0x65,0x28,0x76,0x29,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x70,0x61,0x63,
|
||||
0x6b,0x65,0x64,0x5f,0x74,0x79,0x70,0x65,0x73,0x3d,0x7b,0x0d,0x0a,0x09,0x5b,0x22,0x6e,0x75,0x6c,0x6c,
|
||||
0x22,0x5d,0x3d,0x22,0x6e,0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x5d,
|
||||
0x3d,0x22,0x73,0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x22,0x5d,0x3d,
|
||||
0x22,0x69,0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x66,0x6c,0x6f,0x61,0x74,0x22,0x5d,0x3d,0x22,0x66,0x22,
|
||||
0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x75,0x73,0x65,0x72,0x64,0x61,0x74,0x61,0x22,0x5d,0x3d,0x22,0x75,0x22,
|
||||
0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3d,0x22,0x66,0x6e,
|
||||
0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x3d,0x22,0x74,0x22,0x2c,0x0d,
|
||||
0x0a,0x09,0x5b,0x22,0x61,0x72,0x72,0x61,0x79,0x22,0x5d,0x3d,0x22,0x61,0x22,0x2c,0x0d,0x0a,0x09,0x5b,
|
||||
0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x5d,0x3d,0x22,0x67,0x22,0x2c,0x0d,0x0a,0x09,
|
||||
0x5b,0x22,0x74,0x68,0x72,0x65,0x61,0x64,0x22,0x5d,0x3d,0x22,0x68,0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,
|
||||
0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x22,0x5d,0x3d,0x22,0x78,0x22,0x2c,0x20,0x0d,0x0a,0x09,0x5b,
|
||||
0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x5d,0x3d,0x22,0x79,0x22,0x2c,0x20,0x20,0x0d,0x0a,0x09,0x5b,0x22,
|
||||
0x62,0x6f,0x6f,0x6c,0x22,0x5d,0x3d,0x22,0x62,0x22,0x2c,0x0d,0x0a,0x09,0x5b,0x22,0x77,0x65,0x61,0x6b,
|
||||
0x72,0x65,0x66,0x22,0x5d,0x3d,0x22,0x77,0x22,0x20,0x20,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x66,0x75,
|
||||
0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x63,0x6b,0x5f,0x74,0x79,0x70,0x65,0x28,0x74,0x79,0x70,
|
||||
0x65,0x29,0x3a,0x28,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x74,0x79,0x70,0x65,0x73,0x29,0x0d,0x0a,0x7b,
|
||||
0x0d,0x0a,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x20,0x69,0x6e,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,
|
||||
0x5f,0x74,0x79,0x70,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,
|
||||
0x5f,0x74,0x79,0x70,0x65,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x0d,0x0a,0x09,0x72,0x65,0x74,0x75,0x72,
|
||||
0x6e,0x20,0x74,0x79,0x70,0x65,0x0d,0x0a,0x7d,0x20,0x0d,0x0a,0x0d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,
|
||||
0x6f,0x6e,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x62,0x6a,
|
||||
0x2c,0x66,0x75,0x6e,0x63,0x29,0x0d,0x0a,0x7b,0x0d,0x0a,0x09,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x74,0x79,
|
||||
0x20,0x3d,0x20,0x3a,0x3a,0x74,0x79,0x70,0x65,0x28,0x6f,0x62,0x6a,0x29,0x3b,0x0d,0x0a,0x09,0x69,0x66,
|
||||
0x28,0x74,0x79,0x20,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x22,0x29,0x20,0x7b,
|
||||
0x0d,0x0a,0x09,0x09,0x74,0x72,0x79,0x20,0x7b,0x20,0x2f,0x2f,0x54,0x52,0x59,0x20,0x54,0x4f,0x20,0x55,
|
||||
0x53,0x45,0x20,0x5f,0x6e,0x65,0x78,0x74,0x69,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,
|
||||
0x65,0x61,0x63,0x68,0x28,0x69,0x64,0x78,0x2c,0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x29,
|
||||
0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x66,0x75,0x6e,0x63,0x28,
|
||||
0x6f,0x62,0x6a,0x2c,0x69,0x64,0x78,0x2c,0x76,0x61,0x6c,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,
|
||||
0x20,0x7d,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x20,
|
||||
0x7b,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x64,0x78,0x2c,
|
||||
0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x2e,0x67,0x65,0x74,0x63,0x6c,0x61,0x73,0x73,0x28,
|
||||
0x29,0x29,0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x66,0x75,0x6e,0x63,0x28,
|
||||
0x6f,0x62,0x6a,0x2c,0x69,0x64,0x78,0x2c,0x6f,0x62,0x6a,0x5b,0x69,0x64,0x78,0x5d,0x29,0x3b,0x0d,0x0a,
|
||||
0x09,0x09,0x20,0x20,0x20,0x7d,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x09,0x65,0x6c,
|
||||
0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x79,0x20,0x3d,0x3d,0x20,0x22,0x77,0x65,0x61,0x6b,0x72,0x65,0x66,
|
||||
0x22,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x66,0x75,0x6e,0x63,0x28,0x6f,0x62,0x6a,0x2c,0x22,0x40,0x72,
|
||||
0x65,0x66,0x22,0x2c,0x6f,0x62,0x6a,0x2e,0x72,0x65,0x66,0x28,0x29,0x29,0x3b,0x0d,0x0a,0x09,0x7d,0x0d,
|
||||
0x0a,0x09,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,
|
||||
0x69,0x64,0x78,0x2c,0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x29,0x0d,0x0a,0x09,0x09,0x7b,
|
||||
0x0d,0x0a,0x09,0x09,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x28,0x6f,0x62,0x6a,0x2c,0x69,0x64,0x78,
|
||||
0x2c,0x76,0x61,0x6c,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x09,
|
||||
0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,
|
||||
0x64,0x5f,0x74,0x72,0x65,0x65,0x28,0x29,0x3a,0x28,0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,0x29,0x0d,
|
||||
0x0a,0x7b,0x0d,0x0a,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x2c,0x6f,0x20,0x69,0x6e,0x20,
|
||||
0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,0x2e,0x72,0x65,0x66,0x73,0x29,0x0d,0x0a,0x09,0x7b,0x0d,0x0a,
|
||||
0x09,0x09,0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x6f,0x22,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x74,0x79,0x70,0x65,0x22,
|
||||
0x2c,0x28,0x69,0x3d,0x3d,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,0x74,0x74,0x61,0x62,0x6c,0x65,0x28,
|
||||
0x29,0x3f,0x22,0x72,0x22,0x3a,0x70,0x61,0x63,0x6b,0x5f,0x74,0x79,0x70,0x65,0x28,0x3a,0x3a,0x74,0x79,
|
||||
0x70,0x65,0x28,0x69,0x29,0x29,0x29,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x5f,
|
||||
0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3b,0x0d,0x0a,
|
||||
0x09,0x09,0x69,0x66,0x28,0x5f,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x21,0x3d,0x20,0x3a,0x3a,0x74,0x79,
|
||||
0x70,0x65,0x28,0x69,0x29,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,
|
||||
0x74,0x65,0x28,0x22,0x74,0x79,0x70,0x65,0x6f,0x66,0x22,0x2c,0x5f,0x74,0x79,0x70,0x65,0x6f,0x66,0x29,
|
||||
0x3b,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,
|
||||
0x22,0x72,0x65,0x66,0x22,0x2c,0x6f,0x2e,0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x09,0x69,0x66,0x28,0x69,0x20,0x21,0x3d,0x20,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,
|
||||
0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x29,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x69,0x74,0x65,0x72,0x61,
|
||||
0x74,0x65,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x69,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,
|
||||
0x28,0x6f,0x62,0x6a,0x2c,0x69,0x64,0x78,0x2c,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,
|
||||
0x09,0x69,0x66,0x28,0x3a,0x3a,0x74,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x20,0x22,
|
||||
0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x72,0x65,0x74,
|
||||
0x75,0x72,0x6e,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x0d,0x0a,0x09,0x09,0x09,0x09,0x69,0x66,0x20,
|
||||
0x28,0x20,0x3a,0x3a,0x74,0x79,0x70,0x65,0x28,0x69,0x64,0x78,0x29,0x20,0x3d,0x3d,0x20,0x22,0x73,0x74,
|
||||
0x72,0x69,0x6e,0x67,0x22,0x20,0x26,0x26,0x20,0x69,0x64,0x78,0x2e,0x66,0x69,0x6e,0x64,0x28,0x20,0x22,
|
||||
0x5f,0x5f,0x22,0x20,0x29,0x20,0x3d,0x3d,0x20,0x30,0x20,0x29,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x72,
|
||||
0x65,0x74,0x75,0x72,0x6e,0x3b,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x09,0x09,0x62,0x65,0x67,0x69,0x6e,0x65,
|
||||
0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x65,0x22,0x29,0x3b,0x09,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,
|
||||
0x65,0x6d,0x69,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x22,0x6b,0x74,0x22,0x2c,0x22,0x6b,0x76,0x22,0x2c,
|
||||
0x69,0x64,0x78,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x65,0x6d,0x69,0x74,0x76,0x61,0x6c,0x75,
|
||||
0x65,0x28,0x22,0x76,0x74,0x22,0x2c,0x22,0x76,0x22,0x2c,0x6f,0x62,0x6a,0x5b,0x69,0x64,0x78,0x5d,0x29,
|
||||
0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x65,
|
||||
0x22,0x29,0x3b,0x09,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x09,0x7d,0x29,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,
|
||||
0x09,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x6f,0x22,0x29,0x3b,0x0d,0x0a,
|
||||
0x09,0x7d,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,
|
||||
0x61,0x6c,0x75,0x61,0x74,0x65,0x5f,0x77,0x61,0x74,0x63,0x68,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x73,0x2c,
|
||||
0x69,0x64,0x2c,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x29,0x0d,0x0a,0x7b,0x0d,0x0a,0x09,
|
||||
0x6c,0x6f,0x63,0x61,0x6c,0x20,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x3d,0x22,0x72,0x65,0x74,0x75,
|
||||
0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x22,0x0d,0x0a,0x09,0x6c,0x6f,0x63,
|
||||
0x61,0x6c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x5b,0x5d,0x3b,0x0d,0x0a,0x09,0x0d,0x0a,0x09,0x70,
|
||||
0x61,0x72,0x61,0x6d,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x73,0x5b,
|
||||
0x22,0x74,0x68,0x69,0x73,0x22,0x5d,0x29,0x0d,0x0a,0x09,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x66,0x69,0x72,
|
||||
0x73,0x74,0x3d,0x31,0x3b,0x0d,0x0a,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x2c,0x76,0x20,
|
||||
0x69,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x73,0x29,0x7b,0x0d,0x0a,0x09,0x09,0x69,0x66,0x28,0x69,0x21,
|
||||
0x3d,0x22,0x74,0x68,0x69,0x73,0x22,0x20,0x26,0x26,0x20,0x69,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x20,0x27,
|
||||
0x40,0x27,0x29,0x7b,0x20,0x2f,0x2f,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x20,0x69,0x74,0x65,0x72,0x61,
|
||||
0x74,0x6f,0x72,0x73,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x40,0x0d,0x0a,0x09,
|
||||
0x09,0x09,0x69,0x66,0x28,0x21,0x66,0x69,0x72,0x73,0x74,0x29,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x66,
|
||||
0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x3d,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x2b,0x22,0x2c,0x22,
|
||||
0x0d,0x0a,0x09,0x09,0x09,0x09,0x0d,0x0a,0x09,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x09,0x66,0x69,0x72,
|
||||
0x73,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x0d,0x0a,0x09,0x09,0x09,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x61,
|
||||
0x70,0x70,0x65,0x6e,0x64,0x28,0x76,0x29,0x0d,0x0a,0x09,0x09,0x09,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,
|
||||
0x63,0x3d,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x2b,0x69,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,
|
||||
0x7d,0x0d,0x0a,0x09,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x3d,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,
|
||||
0x63,0x2b,0x22,0x29,0x7b,0x5c,0x6e,0x22,0x0d,0x0a,0x09,0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x3d,
|
||||
0x66,0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x2b,0x22,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x22,0x2b,
|
||||
0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2b,0x22,0x29,0x5c,0x6e,0x7d,0x22,0x0d,0x0a,0x09,
|
||||
0x0d,0x0a,0x09,0x74,0x72,0x79,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x66,0x75,
|
||||
0x6e,0x63,0x3d,0x3a,0x3a,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x66,
|
||||
0x75,0x6e,0x63,0x5f,0x73,0x72,0x63,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,
|
||||
0x7b,0x73,0x74,0x61,0x74,0x75,0x73,0x3d,0x22,0x6f,0x6b,0x22,0x20,0x2c,0x20,0x76,0x61,0x6c,0x3d,0x66,
|
||||
0x75,0x6e,0x63,0x28,0x29,0x2e,0x61,0x63,0x61,0x6c,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x7d,
|
||||
0x3b,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x09,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x0d,0x0a,0x09,0x7b,
|
||||
0x0d,0x0a,0x09,0x09,0x0d,0x0a,0x09,0x09,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x73,0x74,0x61,0x74,
|
||||
0x75,0x73,0x3d,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x7d,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x7d,0x0d,0x0a,
|
||||
0x0d,0x0a,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0d,
|
||||
0x0a,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
|
||||
0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0d,0x0a,
|
||||
0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x69,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x74,
|
||||
0x79,0x70,0x65,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x2c,0x76,0x61,0x6c,0x75,0x65,0x5f,0x61,0x74,0x74,
|
||||
0x72,0x69,0x62,0x2c,0x76,0x61,0x6c,0x29,0x0d,0x0a,0x7b,0x0d,0x0a,0x09,0x61,0x74,0x74,0x72,0x69,0x62,
|
||||
0x75,0x74,0x65,0x28,0x74,0x79,0x70,0x65,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x2c,0x70,0x61,0x63,0x6b,
|
||||
0x5f,0x74,0x79,0x70,0x65,0x28,0x3a,0x3a,0x74,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x29,0x29,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5f,0x61,
|
||||
0x74,0x74,0x72,0x69,0x62,0x2c,0x67,0x65,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x29,0x2e,
|
||||
0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x6c,
|
||||
0x6f,0x63,0x61,0x6c,0x20,0x73,0x74,0x61,0x63,0x6b,0x3d,0x5b,0x5d,0x0d,0x0a,0x6c,0x6f,0x63,0x61,0x6c,
|
||||
0x20,0x6c,0x65,0x76,0x65,0x6c,0x3d,0x33,0x3b,0x0d,0x0a,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x73,0x69,0x3b,
|
||||
0x0d,0x0a,0x0d,0x0a,0x09,0x2f,0x2f,0x45,0x4e,0x55,0x4d,0x45,0x52,0x41,0x54,0x45,0x20,0x54,0x48,0x45,
|
||||
0x20,0x53,0x54,0x41,0x43,0x4b,0x20,0x57,0x41,0x54,0x43,0x48,0x45,0x53,0x0d,0x0a,0x09,0x77,0x68,0x69,
|
||||
0x6c,0x65,0x28,0x73,0x69,0x3d,0x3a,0x3a,0x67,0x65,0x74,0x73,0x74,0x61,0x63,0x6b,0x69,0x6e,0x66,0x6f,
|
||||
0x73,0x28,0x6c,0x65,0x76,0x65,0x6c,0x29,0x29,0x0d,0x0a,0x09,0x7b,0x0d,0x0a,0x09,0x09,0x73,0x74,0x61,
|
||||
0x63,0x6b,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x73,0x69,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x6c,0x65,
|
||||
0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x0d,0x0a,0x09,0x2f,0x2f,0x45,0x56,0x41,
|
||||
0x4c,0x55,0x41,0x54,0x45,0x20,0x41,0x4c,0x4c,0x20,0x57,0x41,0x54,0x43,0x48,0x45,0x53,0x0d,0x0a,0x09,
|
||||
0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,0x2e,0x72,0x65,0x66,0x73,0x5b,0x3a,0x3a,0x67,0x65,0x74,0x72,
|
||||
0x6f,0x6f,0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x5d,0x20,0x3c,0x2d,0x20,0x6f,0x62,0x6a,0x73,0x5f,
|
||||
0x72,0x65,0x67,0x2e,0x6d,0x61,0x78,0x69,0x64,0x2b,0x2b,0x3b,0x0d,0x0a,0x09,0x66,0x6f,0x72,0x65,0x61,
|
||||
0x63,0x68,0x28,0x69,0x2c,0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x73,0x74,0x61,0x63,0x6b,0x29,0x0d,0x0a,
|
||||
0x09,0x7b,0x0d,0x0a,0x09,0x09,0x69,0x66,0x28,0x76,0x61,0x6c,0x2e,0x73,0x72,0x63,0x21,0x3d,0x22,0x4e,
|
||||
0x41,0x54,0x49,0x56,0x45,0x22,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x69,0x66,0x28,0x22,0x77,0x61,
|
||||
0x74,0x63,0x68,0x65,0x73,0x22,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x7b,0x0d,0x0a,0x09,
|
||||
0x09,0x09,0x09,0x76,0x61,0x6c,0x2e,0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x3c,0x2d,0x20,0x7b,0x7d,
|
||||
0x0d,0x0a,0x09,0x09,0x09,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x2c,0x77,0x61,0x74,0x63,
|
||||
0x68,0x20,0x69,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x29,0x0d,0x0a,0x09,0x09,0x09,0x09,0x7b,
|
||||
0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x69,0x66,0x28,0x76,0x61,0x6c,0x2e,0x73,0x72,0x63,0x21,0x3d,0x22,
|
||||
0x4e,0x41,0x54,0x49,0x56,0x45,0x22,0x29,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x76,0x61,0x6c,
|
||||
0x2e,0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x5b,0x69,0x5d,0x20,0x3c,0x2d,0x20,0x65,0x76,0x61,0x6c,0x75,
|
||||
0x61,0x74,0x65,0x5f,0x77,0x61,0x74,0x63,0x68,0x28,0x76,0x61,0x6c,0x2e,0x6c,0x6f,0x63,0x61,0x6c,0x73,
|
||||
0x2c,0x69,0x2c,0x77,0x61,0x74,0x63,0x68,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x69,0x66,
|
||||
0x28,0x76,0x61,0x6c,0x2e,0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,
|
||||
0x75,0x73,0x21,0x3d,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,
|
||||
0x09,0x62,0x75,0x69,0x6c,0x64,0x5f,0x72,0x65,0x66,0x73,0x28,0x76,0x61,0x6c,0x2e,0x77,0x61,0x74,0x63,
|
||||
0x68,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x76,0x61,0x6c,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x7d,
|
||||
0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x65,0x6c,0x73,0x65,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,
|
||||
0x76,0x61,0x6c,0x2e,0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x5b,0x69,0x5d,0x20,0x3c,0x2d,0x20,0x7b,0x73,
|
||||
0x74,0x61,0x74,0x75,0x73,0x3d,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x7d,0x0d,0x0a,0x09,0x09,0x09,0x09,
|
||||
0x09,0x7d,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x76,0x61,0x6c,0x2e,0x77,0x61,0x74,0x63,0x68,0x65,0x73,
|
||||
0x5b,0x69,0x5d,0x2e,0x65,0x78,0x70,0x20,0x3c,0x2d,0x20,0x77,0x61,0x74,0x63,0x68,0x3b,0x0d,0x0a,0x09,
|
||||
0x09,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x09,0x09,0x0d,0x0a,0x09,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,
|
||||
0x7d,0x0d,0x0a,0x09,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x2c,0x6c,0x20,0x69,0x6e,0x20,
|
||||
0x76,0x61,0x6c,0x2e,0x6c,0x6f,0x63,0x61,0x6c,0x73,0x29,0x0d,0x0a,0x09,0x09,0x09,0x62,0x75,0x69,0x6c,
|
||||
0x64,0x5f,0x72,0x65,0x66,0x73,0x28,0x6c,0x29,0x3b,0x0d,0x0a,0x09,0x7d,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,
|
||||
0x09,0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x6f,0x62,0x6a,0x73,0x22,
|
||||
0x29,0x3b,0x0d,0x0a,0x09,0x62,0x75,0x69,0x6c,0x64,0x5f,0x74,0x72,0x65,0x65,0x28,0x29,0x3b,0x0d,0x0a,
|
||||
0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x6f,0x62,0x6a,0x73,0x22,0x29,0x3b,
|
||||
0x0d,0x0a,0x0d,0x0a,0x09,0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x63,
|
||||
0x61,0x6c,0x6c,0x73,0x22,0x29,0x3b,0x0d,0x0a,0x0d,0x0a,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,
|
||||
0x69,0x2c,0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x73,0x74,0x61,0x63,0x6b,0x29,0x0d,0x0a,0x09,0x7b,0x0d,
|
||||
0x0a,0x0d,0x0a,0x09,0x09,0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x63,
|
||||
0x61,0x6c,0x6c,0x22,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,
|
||||
0x22,0x66,0x6e,0x63,0x22,0x2c,0x76,0x61,0x6c,0x2e,0x66,0x75,0x6e,0x63,0x29,0x3b,0x0d,0x0a,0x09,0x09,
|
||||
0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x73,0x72,0x63,0x22,0x2c,0x76,0x61,0x6c,0x2e,
|
||||
0x73,0x72,0x63,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,
|
||||
0x6c,0x69,0x6e,0x65,0x22,0x2c,0x76,0x61,0x6c,0x2e,0x6c,0x69,0x6e,0x65,0x2e,0x74,0x6f,0x73,0x74,0x72,
|
||||
0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,
|
||||
0x2c,0x76,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x2e,0x6c,0x6f,0x63,0x61,0x6c,0x73,0x29,0x0d,0x0a,0x09,
|
||||
0x09,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,
|
||||
0x22,0x6c,0x22,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,
|
||||
0x28,0x22,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x67,0x65,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x69,0x29,0x2e,
|
||||
0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x65,0x6d,
|
||||
0x69,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x22,0x74,0x79,0x70,0x65,0x22,0x2c,0x22,0x76,0x61,0x6c,0x22,
|
||||
0x2c,0x76,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,
|
||||
0x22,0x6c,0x22,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x69,0x66,0x28,0x22,0x77,0x61,
|
||||
0x74,0x63,0x68,0x65,0x73,0x22,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,
|
||||
0x09,0x66,0x6f,0x72,0x65,0x61,0x63,0x68,0x28,0x69,0x2c,0x76,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x2e,
|
||||
0x77,0x61,0x74,0x63,0x68,0x65,0x73,0x29,0x0d,0x0a,0x09,0x09,0x09,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,
|
||||
0x62,0x65,0x67,0x69,0x6e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x77,0x22,0x29,0x3b,0x0d,0x0a,
|
||||
0x09,0x09,0x09,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x69,0x64,0x22,0x2c,
|
||||
0x69,0x2e,0x74,0x6f,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,
|
||||
0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x65,0x78,0x70,0x22,0x2c,0x76,0x2e,0x65,
|
||||
0x78,0x70,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,
|
||||
0x28,0x22,0x73,0x74,0x61,0x74,0x75,0x73,0x22,0x2c,0x76,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,
|
||||
0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x69,0x66,0x28,0x76,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x21,0x3d,
|
||||
0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x20,0x7b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x65,0x6d,
|
||||
0x69,0x74,0x76,0x61,0x6c,0x75,0x65,0x28,0x22,0x74,0x79,0x70,0x65,0x22,0x2c,0x22,0x76,0x61,0x6c,0x22,
|
||||
0x2c,0x76,0x2e,0x76,0x61,0x6c,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,
|
||||
0x09,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x77,0x22,0x29,0x3b,0x0d,0x0a,
|
||||
0x09,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x7d,0x0d,0x0a,0x09,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,
|
||||
0x65,0x6e,0x74,0x28,0x22,0x63,0x61,0x6c,0x6c,0x22,0x29,0x3b,0x0d,0x0a,0x09,0x09,0x20,0x0d,0x0a,0x09,
|
||||
0x7d,0x0d,0x0a,0x09,0x65,0x6e,0x64,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x63,0x61,0x6c,0x6c,
|
||||
0x73,0x22,0x29,0x3b,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x09,0x6f,0x62,0x6a,0x73,0x5f,0x72,0x65,0x67,0x20,
|
||||
0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0d,0x0a,0x09,0x73,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,
|
||||
0x6c,0x6c,0x3b,0x0d,0x0a,0x09,0x0d,0x0a,0x09,0x69,0x66,0x28,0x22,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,
|
||||
0x67,0x61,0x72,0x62,0x61,0x67,0x65,0x22,0x20,0x69,0x6e,0x20,0x3a,0x3a,0x67,0x65,0x74,0x72,0x6f,0x6f,
|
||||
0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x29,0x20,0x3a,0x3a,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x67,
|
||||
0x61,0x72,0x62,0x61,0x67,0x65,0x28,0x29,0x3b,0x0d,0x0a,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,
|
||||
0x0d,0x0a,0x7b,0x0d,0x0a,0x09,0x3a,0x3a,0x70,0x72,0x69,0x6e,0x74,0x28,0x22,0x45,0x52,0x52,0x4f,0x52,
|
||||
0x22,0x2b,0x65,0x2b,0x22,0x5c,0x6e,0x22,0x29,0x3b,0x0d,0x0a,0x7d,0x0d,0x0a,0x0d,0x0a,0x69,0x66,0x20,
|
||||
0x28,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x73,0x63,0x6f,0x70,0x65,0x20,0x29,0x0d,0x0a,0x7b,0x0d,
|
||||
0x0a,0x09,0x3a,0x3a,0x73,0x65,0x74,0x72,0x6f,0x6f,0x74,0x74,0x61,0x62,0x6c,0x65,0x28,0x20,0x63,0x75,
|
||||
0x72,0x72,0x65,0x6e,0x74,0x73,0x63,0x6f,0x70,0x65,0x20,0x29,0x3b,0x0d,0x0a,0x7d,0x0d,0x0a,
|
||||
};
|
||||
277
vscript/languages/squirrel/sqdbg/serialize_state.nut
Normal file
277
vscript/languages/squirrel/sqdbg/serialize_state.nut
Normal file
@@ -0,0 +1,277 @@
|
||||
/*
|
||||
see copyright notice in sqrdbg.h
|
||||
*/
|
||||
local currentscope;
|
||||
if ( ::getroottable().parent )
|
||||
{
|
||||
currentscope = ::getroottable();
|
||||
::setroottable( ::getroottable().parent );
|
||||
}
|
||||
try {
|
||||
|
||||
local objs_reg = { maxid=0 ,refs={} }
|
||||
|
||||
complex_types <- {
|
||||
["table"] = null,
|
||||
["array"] = null,
|
||||
["class"] = null,
|
||||
["instance"] = null,
|
||||
["weakref"] = null,
|
||||
}
|
||||
|
||||
function build_refs(t):(objs_reg)
|
||||
{
|
||||
if(t == ::getroottable())
|
||||
return;
|
||||
local otype = ::type(t);
|
||||
if(otype in complex_types)
|
||||
{
|
||||
if(!(t in objs_reg.refs)) {
|
||||
objs_reg.refs[t] <- objs_reg.maxid++;
|
||||
|
||||
iterateobject(t,function(o,i,val):(objs_reg)
|
||||
{
|
||||
build_refs(val);
|
||||
build_refs(i);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function getvalue(v):(objs_reg)
|
||||
{
|
||||
switch(::type(v))
|
||||
{
|
||||
case "table":
|
||||
case "array":
|
||||
case "class":
|
||||
case "instance":
|
||||
return objs_reg.refs[v].tostring();
|
||||
case "integer":
|
||||
case "float":
|
||||
return v;
|
||||
case "bool":
|
||||
return v.tostring();
|
||||
case "string":
|
||||
return v;
|
||||
case "null":
|
||||
return "null";
|
||||
default:
|
||||
|
||||
return pack_type(::type(v));
|
||||
}
|
||||
}
|
||||
|
||||
local packed_types={
|
||||
["null"]="n",
|
||||
["string"]="s",
|
||||
["integer"]="i",
|
||||
["float"]="f",
|
||||
["userdata"]="u",
|
||||
["function"]="fn",
|
||||
["table"]="t",
|
||||
["array"]="a",
|
||||
["generator"]="g",
|
||||
["thread"]="h",
|
||||
["instance"]="x",
|
||||
["class"]="y",
|
||||
["bool"]="b",
|
||||
["weakref"]="w"
|
||||
}
|
||||
|
||||
function pack_type(type):(packed_types)
|
||||
{
|
||||
if(type in packed_types)return packed_types[type]
|
||||
return type
|
||||
}
|
||||
|
||||
function iterateobject(obj,func)
|
||||
{
|
||||
local ty = ::type(obj);
|
||||
if(ty == "instance") {
|
||||
try { //TRY TO USE _nexti
|
||||
foreach(idx,val in obj)
|
||||
{
|
||||
func(obj,idx,val);
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
foreach(idx,val in obj.getclass())
|
||||
{
|
||||
func(obj,idx,obj[idx]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(ty == "weakref") {
|
||||
func(obj,"@ref",obj.ref());
|
||||
}
|
||||
else {
|
||||
foreach(idx,val in obj)
|
||||
{
|
||||
func(obj,idx,val);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function build_tree():(objs_reg)
|
||||
{
|
||||
foreach(i,o in objs_reg.refs)
|
||||
{
|
||||
beginelement("o");
|
||||
attribute("type",(i==::getroottable()?"r":pack_type(::type(i))));
|
||||
local _typeof = typeof i;
|
||||
if(_typeof != ::type(i)) {
|
||||
attribute("typeof",_typeof);
|
||||
}
|
||||
attribute("ref",o.tostring());
|
||||
if(i != ::getroottable()){
|
||||
iterateobject(i,function (obj,idx,val) {
|
||||
if(::type(val) == "function")
|
||||
return;
|
||||
|
||||
if ( ::type(idx) == "string" && idx.find( "__" ) == 0 )
|
||||
return;
|
||||
|
||||
beginelement("e");
|
||||
emitvalue("kt","kv",idx);
|
||||
emitvalue("vt","v",obj[idx]);
|
||||
endelement("e");
|
||||
|
||||
})
|
||||
}
|
||||
endelement("o");
|
||||
}
|
||||
}
|
||||
|
||||
function evaluate_watch(locals,id,expression)
|
||||
{
|
||||
local func_src="return function ("
|
||||
local params=[];
|
||||
|
||||
params.append(locals["this"])
|
||||
local first=1;
|
||||
foreach(i,v in locals){
|
||||
if(i!="this" && i[0] != '@'){ //foreach iterators start with @
|
||||
if(!first){
|
||||
func_src=func_src+","
|
||||
|
||||
}
|
||||
first=null
|
||||
params.append(v)
|
||||
func_src=func_src+i
|
||||
}
|
||||
}
|
||||
func_src=func_src+"){\n"
|
||||
func_src=func_src+"return ("+expression+")\n}"
|
||||
|
||||
try {
|
||||
local func=::compilestring(func_src);
|
||||
return {status="ok" , val=func().acall(params)};
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
|
||||
return {status="error"}
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
function emitvalue(type_attrib,value_attrib,val)
|
||||
{
|
||||
attribute(type_attrib,pack_type(::type(val)));
|
||||
attribute(value_attrib,getvalue(val).tostring());
|
||||
}
|
||||
|
||||
local stack=[]
|
||||
local level=3;
|
||||
local si;
|
||||
|
||||
//ENUMERATE THE STACK WATCHES
|
||||
while(si=::getstackinfos(level))
|
||||
{
|
||||
stack.append(si);
|
||||
level++;
|
||||
}
|
||||
|
||||
//EVALUATE ALL WATCHES
|
||||
objs_reg.refs[::getroottable()] <- objs_reg.maxid++;
|
||||
foreach(i,val in stack)
|
||||
{
|
||||
if(val.src!="NATIVE") {
|
||||
if("watches" in this) {
|
||||
val.watches <- {}
|
||||
foreach(i,watch in watches)
|
||||
{
|
||||
if(val.src!="NATIVE"){
|
||||
val.watches[i] <- evaluate_watch(val.locals,i,watch);
|
||||
if(val.watches[i].status!="error")
|
||||
build_refs(val.watches[i].val);
|
||||
}
|
||||
else{
|
||||
val.watches[i] <- {status="error"}
|
||||
}
|
||||
val.watches[i].exp <- watch;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
foreach(i,l in val.locals)
|
||||
build_refs(l);
|
||||
}
|
||||
|
||||
|
||||
beginelement("objs");
|
||||
build_tree();
|
||||
endelement("objs");
|
||||
|
||||
beginelement("calls");
|
||||
|
||||
foreach(i,val in stack)
|
||||
{
|
||||
|
||||
beginelement("call");
|
||||
attribute("fnc",val.func);
|
||||
attribute("src",val.src);
|
||||
attribute("line",val.line.tostring());
|
||||
foreach(i,v in val.locals)
|
||||
{
|
||||
beginelement("l");
|
||||
attribute("name",getvalue(i).tostring());
|
||||
emitvalue("type","val",v);
|
||||
endelement("l");
|
||||
}
|
||||
if("watches" in val) {
|
||||
foreach(i,v in val.watches)
|
||||
{
|
||||
beginelement("w");
|
||||
attribute("id",i.tostring());
|
||||
attribute("exp",v.exp);
|
||||
attribute("status",v.status);
|
||||
if(v.status!="error") {
|
||||
emitvalue("type","val",v.val);
|
||||
}
|
||||
endelement("w");
|
||||
}
|
||||
}
|
||||
endelement("call");
|
||||
|
||||
}
|
||||
endelement("calls");
|
||||
|
||||
|
||||
objs_reg = null;
|
||||
stack = null;
|
||||
|
||||
if("collectgarbage" in ::getroottable()) ::collectgarbage();
|
||||
}catch(e)
|
||||
{
|
||||
::print("ERROR"+e+"\n");
|
||||
}
|
||||
|
||||
if ( currentscope )
|
||||
{
|
||||
::setroottable( currentscope );
|
||||
}
|
||||
162
vscript/languages/squirrel/sqdbg/sqdbg.cbp
Normal file
162
vscript/languages/squirrel/sqdbg/sqdbg.cbp
Normal file
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE CodeBlocks_project_file>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="1"/>
|
||||
<Project>
|
||||
<Option title="sqdbg"/>
|
||||
<Option makefile="Makefile"/>
|
||||
<Option makefile_is_custom="0"/>
|
||||
<Option compiler="0"/>
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="Debug\sqdbg.exe"/>
|
||||
<Option working_dir="."/>
|
||||
<Option object_output="Debug"/>
|
||||
<Option deps_output=".deps"/>
|
||||
<Option external_deps="..\lib\libsqdbglibD.a;..\lib\libsquirrelD.a;..\lib\libsqstdlibD.a;"/>
|
||||
<Option type="1"/>
|
||||
<Option compiler="0"/>
|
||||
<Option projectResourceIncludeDirsRelation="1"/>
|
||||
<Compiler>
|
||||
<Add option="-W"/>
|
||||
<Add option="-O0"/>
|
||||
<Add option="-DWIN32"/>
|
||||
<Add option="-D_DEBUG"/>
|
||||
<Add option="-D_CONSOLE"/>
|
||||
<Add option="-D_CRT_SECURE_NO_DEPRECATE"/>
|
||||
<Add directory="..\include"/>
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="..\lib\libsqdbglibD.a"/>
|
||||
<Add library="..\lib\libsquirrelD.a"/>
|
||||
<Add library="..\lib\libsqstdlibD.a"/>
|
||||
<Add library="wsock32"/>
|
||||
<Add directory="..\lib"/>
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="Release\sqdbg.exe"/>
|
||||
<Option working_dir="."/>
|
||||
<Option object_output="Release"/>
|
||||
<Option deps_output=".deps"/>
|
||||
<Option external_deps="..\lib\libsqdbglib.a;..\lib\libsquirrel.a;..\lib\libsqstdlib.a;"/>
|
||||
<Option type="1"/>
|
||||
<Option compiler="0"/>
|
||||
<Option projectResourceIncludeDirsRelation="1"/>
|
||||
<Compiler>
|
||||
<Add option="-W"/>
|
||||
<Add option="-g"/>
|
||||
<Add option="-DWIN32"/>
|
||||
<Add option="-DNDEBUG"/>
|
||||
<Add option="-D_CONSOLE"/>
|
||||
<Add option="-D_CRT_SECURE_NO_DEPRECATE"/>
|
||||
<Add directory="..\include"/>
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="..\lib\libsqdbglib.a"/>
|
||||
<Add library="..\lib\libsquirrel.a"/>
|
||||
<Add library="..\lib\libsqstdlib.a"/>
|
||||
<Add library="wsock32"/>
|
||||
<Add directory="..\lib"/>
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Debug - Unicode">
|
||||
<Option output="Debug - Unicode\sqdbg.exe"/>
|
||||
<Option working_dir="."/>
|
||||
<Option object_output="Debug - Unicode"/>
|
||||
<Option deps_output=".deps"/>
|
||||
<Option external_deps="..\lib\libsqdbglibDU.a;..\lib\libsquirrelDU.a;..\lib\libsqstdlibDU.a;"/>
|
||||
<Option type="1"/>
|
||||
<Option compiler="0"/>
|
||||
<Option projectResourceIncludeDirsRelation="1"/>
|
||||
<Compiler>
|
||||
<Add option="-W"/>
|
||||
<Add option="-O0"/>
|
||||
<Add option="-DWIN32"/>
|
||||
<Add option="-D_DEBUG"/>
|
||||
<Add option="-D_CONSOLE"/>
|
||||
<Add option="-D_CRT_SECURE_NO_DEPRECATE"/>
|
||||
<Add option="-D_CRT_NON_CONFORMING_SWPRINTFS"/>
|
||||
<Add directory="..\include"/>
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="..\lib\libsqdbglibDU.a"/>
|
||||
<Add library="..\lib\libsquirrelDU.a"/>
|
||||
<Add library="..\lib\libsqstdlibDU.a"/>
|
||||
<Add library="wsock32"/>
|
||||
<Add directory="..\lib"/>
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Release - Unicode">
|
||||
<Option output="Release - Unicode\sqdbg.exe"/>
|
||||
<Option working_dir="."/>
|
||||
<Option object_output="Release - Unicode"/>
|
||||
<Option deps_output=".deps"/>
|
||||
<Option external_deps="..\lib\libsqdbglibU.a;..\lib\libsquirrelU.a;..\lib\libsqstdlibU.a;"/>
|
||||
<Option type="1"/>
|
||||
<Option compiler="0"/>
|
||||
<Option projectResourceIncludeDirsRelation="1"/>
|
||||
<Compiler>
|
||||
<Add option="-W"/>
|
||||
<Add option="-g"/>
|
||||
<Add option="-DWIN32"/>
|
||||
<Add option="-DNDEBUG"/>
|
||||
<Add option="-D_CONSOLE"/>
|
||||
<Add option="-D_CRT_SECURE_NO_DEPRECATE"/>
|
||||
<Add option="-D_CRT_NON_CONFORMING_SWPRINTFS"/>
|
||||
<Add directory="..\include"/>
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="..\lib\libsqdbglibU.a"/>
|
||||
<Add library="..\lib\libsquirrelU.a"/>
|
||||
<Add library="..\lib\libsqstdlibU.a"/>
|
||||
<Add library="wsock32"/>
|
||||
<Add directory="..\lib"/>
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Unit filename="..\include\sqdbgserver.h">
|
||||
<Option compilerVar=""/>
|
||||
<Option compile="0"/>
|
||||
<Option link="0"/>
|
||||
<Option target="Debug"/>
|
||||
<Option target="Release"/>
|
||||
<Option target="Debug - Unicode"/>
|
||||
<Option target="Release - Unicode"/>
|
||||
</Unit>
|
||||
<Unit filename="..\include\sqrdbg.h">
|
||||
<Option compilerVar=""/>
|
||||
<Option compile="0"/>
|
||||
<Option link="0"/>
|
||||
<Option target="Debug"/>
|
||||
<Option target="Release"/>
|
||||
<Option target="Debug - Unicode"/>
|
||||
<Option target="Release - Unicode"/>
|
||||
</Unit>
|
||||
<Unit filename="main.cpp">
|
||||
<Option compilerVar="CPP"/>
|
||||
<Option target="Debug"/>
|
||||
<Option target="Release"/>
|
||||
<Option target="Debug - Unicode"/>
|
||||
<Option target="Release - Unicode"/>
|
||||
</Unit>
|
||||
<Unit filename="serialize_state.nut">
|
||||
<Option compilerVar=""/>
|
||||
<Option compile="0"/>
|
||||
<Option link="0"/>
|
||||
<Option target="Debug"/>
|
||||
<Option target="Release"/>
|
||||
<Option target="Debug - Unicode"/>
|
||||
<Option target="Release - Unicode"/>
|
||||
</Unit>
|
||||
<Unit filename="test.nut">
|
||||
<Option compilerVar=""/>
|
||||
<Option compile="0"/>
|
||||
<Option link="0"/>
|
||||
<Option target="Debug"/>
|
||||
<Option target="Release"/>
|
||||
<Option target="Debug - Unicode"/>
|
||||
<Option target="Release - Unicode"/>
|
||||
</Unit>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
||||
BIN
vscript/languages/squirrel/sqdbg/sqdbg.chm
Normal file
BIN
vscript/languages/squirrel/sqdbg/sqdbg.chm
Normal file
Binary file not shown.
494
vscript/languages/squirrel/sqdbg/sqdbg.pdf
Normal file
494
vscript/languages/squirrel/sqdbg/sqdbg.pdf
Normal file
@@ -0,0 +1,494 @@
|
||||
%PDF-1.3
|
||||
%<25><><EFBFBD><EFBFBD>
|
||||
4 0 obj
|
||||
<< /Type /Info
|
||||
/Producer (FOP 0.20.5) >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Length 196 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GaqdY]+0EX&;B(lT41D@*+tSN;/4Ut;R\G?OEDk#&6F++6)>^%qht(5^"An`O:%O/^cqrFJZf5C'FZgXJMj2O1`/_b3XrfU>BYFS9hM,(@3_nF3gBoT9Bc3qXP4mt@uMS5.jO.p#ClaLCf.d3?VEJJ<[f`FTjmgRGAS)Ccn@nXebn8]oeWu"qgWh^iWC>m0t%~>
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 5 0 R
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Length 1032 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gasao968i1&AJ$CE(_rr;`u\TDGNtK1[1kLh:`p3KHqH]*!CH`mu*-((.W6uT(0&.o'MVOh.MXI+(H"fnJYuh,!bfF7"P/f.#\3ITJY<\-jii&U@5SKShuXoniO49dM2/YRh4D)V6*SD;n]*>Y%oLMAVbt#oFkf.N5l'T"1[mbHe[m"]Ltb5Dg>*S&d(Z[C`:rl'b09+++Z$SDqFFH40_"A<]A/Art-QNPG01U=6;/UWrG.#,2^ZM^.E;WVq-(C$jTJk3uk.)]'Vq_N^QdDo.BZ6**>d*W4O5OMY/o$W&lcb#d'bWF=/Kbhg7qA%pVZOEP(DXpLI`sUf/WLPn+n"3oN(ZcqaCVE=QR1Gf^S8_NnM)\S#;blp\i1agl%]q,ps5?'9@g582-SVc-qn9mbJs,$E7'g*nL#=so:Y=@)[H&/DQ]!-2g2Sr[G'inY<lB.@-:pIq+#]ShO)(<WfGTd.!?<ak1>Y"eVaU[rhBW8g>L1#X*UbuiN2W(tu\\JID7K'9dtlZ0(o<>D6FW@SnF!+g*2X!#Pqeh83A[9U59+:+jIS<:0hrKS_M0b1+u.`l_55eED8/Z+c)QCq_Ks$[<'!O'6s!gV\K*5-nX(X71TcDeOLO"B)EG`"&ZpM8[t6P7fS_@RIJJ6]YXe3PU19QJ^k\lVYl";#Te`d12]At[%@]l=u=TjIq'E5Gcq(/\-uNcKFU[\/F1;`cU\7\DXMeJ7.bZsdD*C*!@)L'8O:T`Z"eQA0r`>pqBF"<&&:SN(Xnf'UP+cb[8.)<%*['SRURShGgs+,./IB>kiUR#<5h\Q^9dN!:2H#LkOfCDtFUTr-p6%jej'EFOU[qe*&Uo[XC%$P:a;b(6gJgM(,gLVGbMe+")*-1VY"'1eY)BY;c[f3EQG6@\ufcb%;uGCR;d\^?otfbREY^KEbR,`[gm:u/4`kSJlJD9;#G8P8TVFb&.JrZ3l/CnLa#NV#El=i7A-3)+at]KTka-i6>G^BDgQQ([eq*LN+fW*4ROgh2t.Rl-50g&1q"H]<^~>
|
||||
endstream
|
||||
endobj
|
||||
8 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 7 0 R
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<< /Length 71 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Garg^iGoCd.c`?]8EV`b1=.gR0K1`91K?+0ZOMGdU/Zh'Y!=Te%#&:?HH*JE!<E/X&V'~>
|
||||
endstream
|
||||
endobj
|
||||
10 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 9 0 R
|
||||
>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<< /Length 500 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gb"/h4)]a*&:etR`JnDaMdI=@V@P+]qN/1d6QUtO9qeC?l-HOB8Xr1GUoFN2F^k/oR):!5dpWGA34n<<'k%F4/;PDZ-q*d'TGWM.N`2)J$2PAX6Tl@69b7(o.?[:Q+=sjiiC-o!VPl_*n-&U-VNsIlS&JuGB;NfU@Z_5%BUb;#QUJE0W1T%k>ak1qSt!klKQO7$h9>R6&eYfioViB3kt3uUd59gL.kd@GKrGhDZYU&F\m@<.'%5[1j,RQQGKeEW5^>5eB1:\31c"`I=#9MT%Cb0Dam9TGl$q.OlD;p1n':)d@HqE,^%fBI<S$9-S@cr*ZKkd>+X-5P38:Y+p95\Q^;:cXomD3IoRdC4RE?5-7K?$8oo>,qOA:j;VVqc,$(5gPR]Y%34Dd>M6MdNgRVkSAD#:SJC;0$JK(5u[NJ)t<oHV>sQ/\rgnD=.lDB,PW,n`V`Oep2c(>K,s]g"4eKHH_nFs`9O/La4cKPHc4>PNDk"5=c#SH~>
|
||||
endstream
|
||||
endobj
|
||||
12 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 11 0 R
|
||||
/Annots 13 0 R
|
||||
>>
|
||||
endobj
|
||||
13 0 obj
|
||||
[
|
||||
14 0 R
|
||||
16 0 R
|
||||
18 0 R
|
||||
20 0 R
|
||||
22 0 R
|
||||
24 0 R
|
||||
26 0 R
|
||||
]
|
||||
endobj
|
||||
14 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 655.001 187.48 645.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 15 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
16 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 644.001 183.43 634.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 17 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
18 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 633.001 242.31 623.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 19 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
20 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 622.001 230.65 612.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 21 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
22 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 611.001 189.14 601.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 23 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
24 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 144.0 600.001 183.43 590.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 25 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
26 0 obj
|
||||
<< /Type /Annot
|
||||
/Subtype /Link
|
||||
/Rect [ 120.0 589.001 142.77 579.001 ]
|
||||
/C [ 0 0 0 ]
|
||||
/Border [ 0 0 0 ]
|
||||
/A 27 0 R
|
||||
/H /I
|
||||
>>
|
||||
endobj
|
||||
28 0 obj
|
||||
<< /Length 1965 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gatm<>B?Pt'RnB3@(-Z']8csPhKBu]nRgV!g.>!3Th?_b6+1J^&:s5GSc8@)&0QODZIA(57H^=bqfFHR0:\fD:TB(*A6Gqn/<47TH)*tdr"R8k8<s\-7YYMIc<C'fEk1bhSBuh/MG4c;Q>@MgM1XHgZQa8+'q'!+b<kPmEde1E\tmE?)U-a/'O3=#6UQ`F1L&-SbR-LZn`;%hB[3Sf_:L\'a+tl.2es$6>6C&a1n54Ff.,Hn,)gTKUg?e+B[!&,+f-ID*(ne=\34NBj#["i':*>NKt`n/8W4Q=!.5ZPW\1$^J6+TRCD@]8/YUp\m,!In[ZRD%9PS`pF`@la<GWflgrfEGj3'QD?T<3(i<(I%E)&PGI*G`!/guRNA1&eM'>>er(^YfTcSW`LVe]Cq"nAd'"CL+iB^A0>7*Z:Aa-IO"L2t_*$cm%9=rSpH[Q%1O"OG(hUJfH(\o$2&pW19+/B\3OLfM?o+E-JSQ][rc9&bljbM0AnD9%XG,K/O,-kGq0%VN&'rPEb3$M1L64^ZTIZWqXdM)lenrTIB27k`]B!@=?$[Fsn.dTkBuAE$5/\15KP?8aB'PKfsM3@"=USt^!MdW*`7LmT#Rh=_NgoSmf-=,42MEH<iJ7AXu:T0hto9bqWg:_`E4NE?0l$YqSTQGk`-(FBj*/.)3J`;bI`<gO1JLfg]H$M>F8ME*l46u8DslKuMb<jmj^7oJ=M6:VgF?NQ#hjE)_rRf?.\4EDZsI?FrG(8?C]",;+5>UlLh#H0j&7HpE:_&aUC9.4VMXY6F"=:jTuZkVa",SIu?_K?cZIP3NNk$GP7lQE&Q<A:.G6?<`O#F&s;rZr&U<jSlP?bc*i1A5creI,/pRsQo!6d(2b@5j1YU)<_AOl[kMeGSFT(PX@ah6=fWA/Ht_N0?mI'3`F\n^a1'E+CT2#]4r1Oha-%#\cV*j?p1e(6:>"I]B1OIgRja'6ipQ?<H+6_3=5)F4%5f59G#.ZJC_aZG#_,$'up4D&VE1_0l&XBP^,Kn$oB%HfBhG8X#,m_Gb7[Y)_?5C@9@To1Yf[RPck[ehHf]2/?SWb>7,bp`5V-R]Jpuir1>WDgq(=b2cB9SHi'eJlbfM9T[WTJi1\>=:bi607+)u@Kpt>*Pu'8j8JEq[7LJ1,mjC3pN=<]4,9iFVC!6RRZ0.,Q8(YLDHr^JjrpXT,joW?gW&2=`c-rmh6pU!c2r?fMH*KG=B\orR<,+'05\::'\2F.ggb8d-d:doqo`jl7\/2s6Jg0hU>M;u)W&e1oNF;]glO8-E[;KeUY:gQP?iNDm'^%<?2?o`qC@VIl::W\rV"m:fsZNMN7@^gnTT28@22utN&7SYA`8s;\Gfk1'"`e!$EP(u$Fp*RbrPYM"nt=1e*PLGH!`dA.OBbr6u`/R^5N`>?EfWmW%96D\-P[qhAs+YTDO$j0J\X1#>4OrNOaX>V(5NaY%)"oa7)n)(0-&^XL<MJh*$_cmmf=u"/f&2ji`^:cd,BY9&M*4)/K+E=3@e*<*g\M*^"!Z0-ON82(p-f)Ue>P[&bIHpAXFFh)fM&4;g6@o:,8gUD[]*T1>E])I5I1?]XV8B0&&WQ/11Eic]Y:E([t3hQ*CC9sI]/C;%?@-Kc1(U0m'ocLg)hlJ*9MX0P]8#q'[VqD*1_Xe[EbbFqiG`p%YKpcG#%3HRUuTrJfV>o;J^GmU4$qPPd?Y"+]'rOF_U:>BSj<ZbEkYH'ZdVi^7e^OV_2\qX2[Q-7PJX`.7,65EW&q8MV4??V#Z-OqS%?maKM^nf2-c8</FCcA+Xm&eCMahuBJT!GXD.5Ea)3h.;/76hVnqWVED^78O&B)t\2V9Z!AfutW*oGcA@a8QW$*T7ogofUE]SI]jC8e&u;WB:[6T'HllS45rt<c!!L6/fV<S>0`j^KMM6WPKe_mU*pO*XWN+dc0KYkecS%KT&fUp[qiITW3-Zbb=m:3e^f<(D0ffdf~>
|
||||
endstream
|
||||
endobj
|
||||
29 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 28 0 R
|
||||
>>
|
||||
endobj
|
||||
30 0 obj
|
||||
<< /Length 822 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
Gas1]>u03/'RfGR0MI[.$/@MKj$XOk1c6?g.dc4fP6e0\j-4:).8C3\e,K67-H--nP_[3&\`]R]fb^4970nt_>p-G5$Pj`c>l>dqr'4UEf7OJ4nHA9M/>#)IZVnlBooC`8#NDW^HSpEtH8)!$pmYNRnfqmBkm&7<_gT[q>.iXaqZEW&6\KZZH+M5dX;"%M$8(FV[EP[&EMd`?361Q6d(eq!;r=\`SSYj"k&g=19To<5l(2_1,i)6O)Ld8]D.?dbjs--T/<]GY%q#qD2&KieLNYCMWBqKsAMmE:11-E<l>]U*.N^R,KiD75B4\2$&&Y&7OHS-`ji734*Jao.(p_0DT+sXZ!kgMK?LR+!E5n)d`.rutgk[Iu%d0UL3D>1eqW7cs_#'>=9E*,i6oW_F./(rq_]b(/C_mp"LdP+&GW^s5;8i9\%hbdfT%4(6^<W$E<iC;+kAjl\MnD`RVK2?>>hSF6)1`LVle#+X[-=/LeY/5C!1>t?h`R>5^6cP)^!oO2H6hi>KYXgoLCS48.3DPe<7U>D,noJ'TR0A+]BdDuZ:_$/;>7g`C&7cR*ad.`W9UigRtL*(4UO@MA]#Vt0s``2FMlF[PEF\DV3%F\YdQD>+#d2']]QgufbKX26Jj&!^+)a%,$K4V+Ud[9in?=%@2+G<@d[N0TRS^jl[?=]1TuQ!K_n%;(Y]i$(kZ6^>R$^'<j.5RoDWd4MQ3$[X#Fqm[Y`ll_0WALh.@D2KA4t/Mp?CM['q_Y&>Xhm^Kpf7,fi%,:1'Bcd*=d]!s=A34/oTTa`cLmq0bDG?d`Fc01euYig/@U7/m99iIp:~>
|
||||
endstream
|
||||
endobj
|
||||
31 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 30 0 R
|
||||
>>
|
||||
endobj
|
||||
32 0 obj
|
||||
<< /Length 1571 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GatTIgMYb(o\ElJ[jFAWLn_',;q!'tL)/%QmE7U+Zpi_;AC6MfBA(n'OsoikAfM%CJ;!+Tgi[MYj`GN_9cVJLED2neEoK-\$$KSHK:U(NXqSe]$N8&6DOeI;5-='MZJs@opS%p>Z($ElM2-iTa4m(,igq`)_=@akFoHBXJ$g2#'To'>37J]HaRt`tgLiFJ<i]D0_fdo.4LOl3Aju"(#fj[>2irq!VdRejE]:P!!`GPeM\(4`<2;A`%McC*1@Q6V7o3snRaS)4i];'uN<\fZYON.DL]i1m?hs?#8E[%G4QfW>BW,_?+:/TN2"dIOGP>0G^J1mq?iJFX'&u,DSkI))(.C+p]dO_=c>'cEDsm(t^ARc+^+.-?c#g6Q"$i-<I$M#PTZXYj,_3?2KIdXXkB;pH!!Pb@^D%kj4CQE".k.K88gTstrn_u6=9@:a$3PrC6&U=D[^+3$TTs)K3I<XacV$j!7-u[;C!L`.0$:)L(BqtjVI1>d!Ca$;(YLqt^+jS"$bBcHZHD(KVfh`>9Bq`M0]3q"*Z_9:Jaeb%4-VJh9@@:gUk'Jqh467_q7`ckgU?tc0mZ.BKYt/':"HuAb!>%[e*Y-!Xg+sm@'`)XV.;SW$$h3sW^l`^*q!@XcaQW'E`c*")7rFb=o[;R+(4)1__@j5*uh0_P?!aGCcYYfnJcB(m$d&ce-,qA&*8$sCrmn(e8Ja1L),h]@f^am;dFMtq/1jVlO3*Ml&`P7B3A3lVG0nsJB2EJ1XEA#lj]5-6*opsTPMn>>u/s%j^`OLmb!O704PgQ$uckV2giO8V!I$k*]'C?MoI8qB)f/*-!?*6l6H)(2AREZ,t)L@`EMa7?s8EhE,E(P$@q1]#I<EZ8ctp,S9"]`eo\Bf@ZC71M2hD?@Dqihj?&c2jbn[F+gu"f>`7c+TE`em9FY+=K>-*G692G&%HcfB3=Buc4/d-KYG!!IY&o\;Li;tk;!VO0_7%"<%?&hsK%ukX(VEVH%8tqe:QlD/oX-*KN2=@&r"03AWPJQe3B.gsYu$:KV^r";$+jPAB`'>gK;XA"g[>A?R[)g2NN`V/8bMJfngV123gcpOf[cA]lpLImO8'de_kWM[ie8ceO'2%6U"&?bjnk?+6I]a@7_;a4Y%0#RF)0qaWi^qO2q%/u*km,l*np.'(lu46d:;#(6@[3B)m,I_:od#+ZYk'RQ/Hf%*ia8(neCFpK+4UCJSh[)\RfX2JhK+d3Odbq(Fh(oN=#&WW&t,@?]W*uZ0oVA3<tnNK4ED06`:fBG`LCaJm91)09-;Fh4oi4X5IF\R,U,\;QJE6mjfG!&ep=hqS:[7PuTPfk8O^TnX.k,b$$s52s1(RePlMA4(55lbpK7;`2MRA>(GccWH4LGN-_a"5gYaYN>"EEH==#)p>od\+3^8M!$hP+gSrVX'B#rn\JCnPHG_&,)?5cOT7^8=W'2nXbEraqZLs$ASY![S_*Q[U<r$4WBAi0%9C/:$47NURc2?[ghR(%j2g]&D(%,qfh,_%($J5\;6&8t`KDiMB._8/6!eN?\^A\(cY;TZ*S`siVi<+\CJ,U"SnJA4W:s/~>
|
||||
endstream
|
||||
endobj
|
||||
33 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 32 0 R
|
||||
>>
|
||||
endobj
|
||||
34 0 obj
|
||||
<< /Length 941 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GatU1hf"u<&:Vr4_.+[3'SCsKHYTs3l[GdJbFY$!EkkMP`2:Og[/KYR`oK6K>A4``]!HhBh0hKESRo.f$P[h6n,k<oB7X./O;I*kH"`W0`FKk_..sm*pLF3mpA3qLlW&--rp7P>H]nT'eQ`mUC>o-`Z;2AhhEq`+;/e:B;>4$oLU"*b6rm9<?I8ARWi3:\qd@9Y2bD@;78gOYr2mEGb6W<h7*?0/S_+*lqu'.l/#tZ\60gnBMPTXJ<hQc7jFWXCQ'<fNQ>kI)h::\`B94:)@:^fkW1B"\TTP*c50gdT"O52Q2rOqE`@3BBLJ.a>g*'Ts`gL;3B"r&b>56S-L.d<W%?V1'@2B(o]$mbogSQ+9j;28i*gl5(!b*HD!Esq*=RI#k698.A;mVuB-Fe]).9<)V!b<pRNI14a-NdIhgL$W(68V2mQ.XK^_ZK.\7OOrdNK>l0+7Hd%^Zub>buY;*CT,`CD-C&P]E27"D9/nflgN1MlCL"?4''t+Yt[T+ja_@&cABm+EB:?Ih'Zgp,s8*-D]hqBo]?tg^%BJB?M`3@4]'KTZD#PjF(@l5>\FWO/RZt*Vj1Jd*+sbdf&>SNe1I4b/(XaBLQN6;UX^]0cgD+24"mEbO4>_Ve/8aWjZK"qpANCOQ8f1.n(>^4Q6c.Gg%F\_Et4q@hM?/dO.\,bM/tC0J?PQNNm5*`a2]">KC4Z7Yd90R5I!$S>jM_p\dWVq3R-qS:NV:mGD-b(VU/=[[n#Z/@>[QUY<&224,V&'="fN)e`,Bm'?DL5/H*Y!FeLd3ZgUFc@9ckdj-<P9DT#?j@KRNg:=lQh(ScO>h/mX_ZB)"/?+h[:]=p?\*#thc.Nc]=p`FS1L&(JRN5Kau1,5+U^l1m!<8/ikcTJ5D?^N0(Nq>X$e#2(U!WRnCELkQm#7:+!(\+7ClJ?@<@uH?JkRY5-16q~>
|
||||
endstream
|
||||
endobj
|
||||
35 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 34 0 R
|
||||
>>
|
||||
endobj
|
||||
36 0 obj
|
||||
<< /Length 287 /Filter [ /ASCII85Decode /FlateDecode ]
|
||||
>>
|
||||
stream
|
||||
GasJM_/@+D%#44r$6MQC-Ae9M>`gpYgns0k9o.14H6=5F&:=>/Q>R*XTj4\os1ZFngl(D1JS'"a^m@C)7OX@4.EF><Y\o2]1[mJN)a/thp_q%3pdN4P7QsZOOZ\K)&iK?tlVH/`P,W^=me*+/bk9q<^MNJ%c*@[VS;cDmRhINNZf<]/p4d@lLR?]6E0o,;L-9qHX'".'e%jSrEE0u`DUrq9`B%%BBJ1oa[QJl@n(tM%A?=,X>F0)mWht;E]SO,5b#q412`=ou,c,oV3.-h`4ms=llYUJ~>
|
||||
endstream
|
||||
endobj
|
||||
37 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 612 792 ]
|
||||
/Resources 3 0 R
|
||||
/Contents 36 0 R
|
||||
/Annots 38 0 R
|
||||
>>
|
||||
endobj
|
||||
38 0 obj
|
||||
[
|
||||
]
|
||||
endobj
|
||||
41 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\123\0\161\0\165\0\151\0\162\0\162\0\145\0\154\0\40\0\122\0\145\0\155\0\157\0\164\0\145\0\40\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162\0\40\0\61\0\56\0\60)
|
||||
/Parent 39 0 R
|
||||
/Next 43 0 R
|
||||
/A 40 0 R
|
||||
>> endobj
|
||||
43 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\124\0\141\0\142\0\154\0\145\0\40\0\157\0\146\0\40\0\103\0\157\0\156\0\164\0\145\0\156\0\164\0\163)
|
||||
/Parent 39 0 R
|
||||
/Prev 41 0 R
|
||||
/Next 44 0 R
|
||||
/A 42 0 R
|
||||
>> endobj
|
||||
44 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\103\0\150\0\141\0\160\0\164\0\145\0\162\0\240\0\61\0\56\0\240\0\124\0\150\0\145\0\40\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 39 0 R
|
||||
/First 45 0 R
|
||||
/Last 47 0 R
|
||||
/Prev 43 0 R
|
||||
/Next 48 0 R
|
||||
/Count -3
|
||||
/A 15 0 R
|
||||
>> endobj
|
||||
45 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\117\0\166\0\145\0\162\0\166\0\151\0\145\0\167)
|
||||
/Parent 44 0 R
|
||||
/Next 46 0 R
|
||||
/A 17 0 R
|
||||
>> endobj
|
||||
46 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\111\0\156\0\164\0\145\0\147\0\162\0\141\0\164\0\151\0\156\0\147\0\40\0\164\0\150\0\145\0\40\0\144\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 44 0 R
|
||||
/Prev 45 0 R
|
||||
/Next 47 0 R
|
||||
/A 19 0 R
|
||||
>> endobj
|
||||
47 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\124\0\150\0\145\0\40\0\156\0\145\0\164\0\167\0\157\0\162\0\153\0\40\0\160\0\162\0\157\0\164\0\157\0\143\0\157\0\154)
|
||||
/Parent 44 0 R
|
||||
/Prev 46 0 R
|
||||
/A 21 0 R
|
||||
>> endobj
|
||||
48 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\103\0\150\0\141\0\160\0\164\0\145\0\162\0\240\0\62\0\56\0\240\0\101\0\120\0\111\0\40\0\122\0\145\0\146\0\145\0\162\0\145\0\156\0\143\0\145)
|
||||
/Parent 39 0 R
|
||||
/First 49 0 R
|
||||
/Last 49 0 R
|
||||
/Prev 44 0 R
|
||||
/Next 50 0 R
|
||||
/Count -1
|
||||
/A 23 0 R
|
||||
>> endobj
|
||||
49 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\104\0\145\0\142\0\165\0\147\0\147\0\145\0\162)
|
||||
/Parent 48 0 R
|
||||
/A 25 0 R
|
||||
>> endobj
|
||||
50 0 obj
|
||||
<<
|
||||
/Title (\376\377\0\111\0\156\0\144\0\145\0\170)
|
||||
/Parent 39 0 R
|
||||
/Prev 48 0 R
|
||||
/A 27 0 R
|
||||
>> endobj
|
||||
51 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F3
|
||||
/BaseFont /Helvetica-Bold
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
52 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F5
|
||||
/BaseFont /Times-Roman
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
53 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F10
|
||||
/BaseFont /Courier-Oblique
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
54 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F6
|
||||
/BaseFont /Times-Italic
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
55 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F1
|
||||
/BaseFont /Helvetica
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
56 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F11
|
||||
/BaseFont /Courier-Bold
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
57 0 obj
|
||||
<< /Type /Font
|
||||
/Subtype /Type1
|
||||
/Name /F9
|
||||
/BaseFont /Courier
|
||||
/Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Count 9
|
||||
/Kids [6 0 R 8 0 R 10 0 R 12 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R ] >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
/Outlines 39 0 R
|
||||
/PageMode /UseOutlines
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Font << /F3 51 0 R /F5 52 0 R /F10 53 0 R /F1 55 0 R /F6 54 0 R /F9 57 0 R /F11 56 0 R >>
|
||||
/ProcSet [ /PDF /ImageC /Text ] >>
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
17 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 666.009 null]
|
||||
>>
|
||||
endobj
|
||||
19 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [29 0 R /XYZ 115.0 589.684 null]
|
||||
>>
|
||||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [31 0 R /XYZ 115.0 448.64 null]
|
||||
>>
|
||||
endobj
|
||||
23 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [33 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
25 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [33 0 R /XYZ 115.0 687.009 null]
|
||||
>>
|
||||
endobj
|
||||
27 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [37 0 R /XYZ 67.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
39 0 obj
|
||||
<<
|
||||
/First 41 0 R
|
||||
/Last 50 0 R
|
||||
>> endobj
|
||||
40 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [10 0 R /XYZ 115.0 725.0 null]
|
||||
>>
|
||||
endobj
|
||||
42 0 obj
|
||||
<<
|
||||
/S /GoTo
|
||||
/D [12 0 R /XYZ 115.0 715.0 null]
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 58
|
||||
0000000000 65535 f
|
||||
0000012880 00000 n
|
||||
0000012993 00000 n
|
||||
0000013085 00000 n
|
||||
0000000015 00000 n
|
||||
0000000071 00000 n
|
||||
0000000358 00000 n
|
||||
0000000464 00000 n
|
||||
0000001588 00000 n
|
||||
0000001694 00000 n
|
||||
0000001855 00000 n
|
||||
0000001962 00000 n
|
||||
0000002554 00000 n
|
||||
0000002677 00000 n
|
||||
0000002746 00000 n
|
||||
0000013232 00000 n
|
||||
0000002882 00000 n
|
||||
0000013297 00000 n
|
||||
0000003018 00000 n
|
||||
0000013364 00000 n
|
||||
0000003154 00000 n
|
||||
0000013431 00000 n
|
||||
0000003290 00000 n
|
||||
0000013497 00000 n
|
||||
0000003426 00000 n
|
||||
0000013562 00000 n
|
||||
0000003562 00000 n
|
||||
0000013629 00000 n
|
||||
0000003698 00000 n
|
||||
0000005756 00000 n
|
||||
0000005864 00000 n
|
||||
0000006778 00000 n
|
||||
0000006886 00000 n
|
||||
0000008550 00000 n
|
||||
0000008658 00000 n
|
||||
0000009691 00000 n
|
||||
0000009799 00000 n
|
||||
0000010178 00000 n
|
||||
0000010301 00000 n
|
||||
0000013693 00000 n
|
||||
0000013744 00000 n
|
||||
0000010321 00000 n
|
||||
0000013809 00000 n
|
||||
0000010565 00000 n
|
||||
0000010761 00000 n
|
||||
0000011032 00000 n
|
||||
0000011162 00000 n
|
||||
0000011400 00000 n
|
||||
0000011600 00000 n
|
||||
0000011877 00000 n
|
||||
0000011993 00000 n
|
||||
0000012105 00000 n
|
||||
0000012218 00000 n
|
||||
0000012328 00000 n
|
||||
0000012443 00000 n
|
||||
0000012554 00000 n
|
||||
0000012662 00000 n
|
||||
0000012774 00000 n
|
||||
trailer
|
||||
<<
|
||||
/Size 58
|
||||
/Root 2 0 R
|
||||
/Info 4 0 R
|
||||
>>
|
||||
startxref
|
||||
13874
|
||||
%%EOF
|
||||
381
vscript/languages/squirrel/sqdbg/sqdbg.vcproj
Normal file
381
vscript/languages/squirrel/sqdbg/sqdbg.vcproj
Normal file
@@ -0,0 +1,381 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="sqdbg"
|
||||
ProjectGUID="{B31D0390-C9F7-4D1C-9DBA-0AE6B7357E75}"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\lib\sqstdlib.lib ..\lib\squirrel.lib ..\lib\sqdbglib.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug - Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release - Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\serialize_state.nut"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\sqrdbg.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\test.nut"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="DevPartner_IsInstrumented"
|
||||
Value="0"
|
||||
/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
251
vscript/languages/squirrel/sqdbg/sqdbg71.vcproj
Normal file
251
vscript/languages/squirrel/sqdbg/sqdbg71.vcproj
Normal file
@@ -0,0 +1,251 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="sqdbg"
|
||||
ProjectGUID="{B31D0390-C9F7-4D1C-9DBA-0AE6B7357E75}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug - Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release - Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\main.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\serialize_state.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\sqdbgserver.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\sqrdbg.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
<File
|
||||
RelativePath=".\test.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="DevPartner_IsInstrumented"
|
||||
Value="0"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
254
vscript/languages/squirrel/sqdbg/sqdbgWithUnicode.vcproj
Normal file
254
vscript/languages/squirrel/sqdbg/sqdbgWithUnicode.vcproj
Normal file
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="sqdbg"
|
||||
ProjectGUID="{B31D0390-C9F7-4D1C-9DBA-0AE6B7357E75}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrelD.lib sqstdlibD.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrel.lib sqstdlib.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrelD.lib sqstdlibD.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_UNICODE"
|
||||
RuntimeLibrary="4"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrel.lib sqstdlib.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\main.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\serialize_state.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\sqdbgserver.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\sqrdbg.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
<File
|
||||
RelativePath=".\test.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="DevPartner_IsInstrumented"
|
||||
Value="0"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
254
vscript/languages/squirrel/sqdbg/sqdbgWithUnicode71.vcproj
Normal file
254
vscript/languages/squirrel/sqdbg/sqdbgWithUnicode71.vcproj
Normal file
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="sqdbg"
|
||||
ProjectGUID="{B31D0390-C9F7-4D1C-9DBA-0AE6B7357E75}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrelD.lib sqstdlibD.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
IgnoreDefaultLibraryNames="LIBCMT"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrel.lib sqstdlib.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrelD.lib sqstdlibD.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/sqdbg.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Unicode|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_UNICODE"
|
||||
RuntimeLibrary="4"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="squirrel.lib sqstdlib.lib"
|
||||
OutputFile="$(OutDir)/sqdbg.exe"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="../lib"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\main.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\serialize_state.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\sqdbgserver.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\sqrdbg.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
<File
|
||||
RelativePath=".\test.nut">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="DevPartner_IsInstrumented"
|
||||
Value="0"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
694
vscript/languages/squirrel/sqdbg/sqdbgserver.cpp
Normal file
694
vscript/languages/squirrel/sqdbg/sqdbgserver.cpp
Normal file
@@ -0,0 +1,694 @@
|
||||
|
||||
#include "tier0/basetypes.h"
|
||||
#include "tier1/strtools.h"
|
||||
#include "tier0/threadtools.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include <assert.h>
|
||||
#include <sqstdblob.h>
|
||||
#include "sqrdbg.h"
|
||||
#include "sqdbgserver.h"
|
||||
#if defined(VSCRIPT_DLL_EXPORT) || defined(VSQUIRREL_TEST)
|
||||
#include "memdbgon.h"
|
||||
#endif
|
||||
|
||||
#ifndef _UNICODE
|
||||
#define scstrcpy strcpy
|
||||
#else
|
||||
#define scstrcpy wcscpy
|
||||
#endif
|
||||
struct XMLEscape{
|
||||
const SQChar c;
|
||||
const SQChar *esc;
|
||||
};
|
||||
|
||||
#define SQDBG_DEBUG_HOOK _SC("_sqdbg_debug_hook_")
|
||||
#define SQDBG_ERROR_HANDLER _SC("_sqdbg_error_handler_")
|
||||
|
||||
XMLEscape g_escapes[]={
|
||||
{_SC('<'),_SC("<")},{'>',_SC(">")},{_SC('&'),_SC("&")},{_SC('\''),_SC("'")},{_SC('\"'),_SC(""")},{_SC('\n'),_SC(""n")},{_SC('\r'),_SC(""r")},{NULL,NULL}
|
||||
};
|
||||
|
||||
const SQChar *IntToString(int n)
|
||||
{
|
||||
static SQChar temp[256];
|
||||
scsprintf(temp,_SC("%d"),n);
|
||||
return temp;
|
||||
}
|
||||
|
||||
SQInteger debug_hook(HSQUIRRELVM v);
|
||||
SQInteger error_handler(HSQUIRRELVM v);
|
||||
|
||||
SQInteger beginelement(HSQUIRRELVM v)
|
||||
{
|
||||
SQUserPointer up;
|
||||
const SQChar *name;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
SQDbgServer *self = (SQDbgServer*)up;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
sq_getstring(v,2,&name);
|
||||
self->BeginElement(name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
SQInteger endelement(HSQUIRRELVM v)
|
||||
{
|
||||
SQUserPointer up;
|
||||
const SQChar *name;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
SQDbgServer *self = (SQDbgServer*)up;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
sq_getstring(v,2,&name);
|
||||
self->EndElement(name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
SQInteger attribute(HSQUIRRELVM v)
|
||||
{
|
||||
SQUserPointer up;
|
||||
const SQChar *name,*value;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
SQDbgServer *self = (SQDbgServer*)up;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
sq_getstring(v,2,&name);
|
||||
sq_getstring(v,3,&value);
|
||||
self->Attribute(name,value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const SQChar *EscapeXMLString(HSQUIRRELVM v,const SQChar *s)
|
||||
{
|
||||
|
||||
SQChar *temp=sq_getscratchpad(v,((int)scstrlen(s)*6) + sizeof (SQChar));
|
||||
SQChar *dest=temp;
|
||||
while(*s!=_SC('\0')){
|
||||
int i=0;
|
||||
bool escaped=false;
|
||||
while(g_escapes[i].esc!=NULL){
|
||||
if(*s==g_escapes[i].c){
|
||||
scstrcpy(dest,g_escapes[i].esc);
|
||||
dest+=scstrlen(g_escapes[i].esc);
|
||||
escaped=true;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if(!escaped){*dest=*s;dest++;}
|
||||
s++;
|
||||
}
|
||||
*dest=_SC('\0');
|
||||
return temp;
|
||||
}
|
||||
|
||||
SQDbgServer::SQDbgServer(HSQUIRRELVM v)
|
||||
{
|
||||
_ready = false;
|
||||
_nestedcalls = 0;
|
||||
_autoupdate = false;
|
||||
_v = v;
|
||||
_state = eDBG_Running;
|
||||
_accept = INVALID_SOCKET;
|
||||
_endpoint = INVALID_SOCKET;
|
||||
_maxrecursion = 10;
|
||||
sq_resetobject(&_debugroot);
|
||||
sq_resetobject(&_serializefunc);
|
||||
}
|
||||
|
||||
SQDbgServer::~SQDbgServer()
|
||||
{
|
||||
sq_pushnull(_v);
|
||||
sq_setdebughook(_v);
|
||||
sq_pushnull(_v);
|
||||
sq_seterrorhandler(_v);
|
||||
sq_release(_v,&_debugroot);
|
||||
#ifndef _X360
|
||||
if(_accept != INVALID_SOCKET)
|
||||
sqdbg_closesocket(_accept);
|
||||
if(_endpoint != INVALID_SOCKET)
|
||||
sqdbg_closesocket(_endpoint);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool SQDbgServer::Init()
|
||||
{
|
||||
//creates an environment table for the debugger
|
||||
|
||||
sq_newtable(_v);
|
||||
sq_getstackobj(_v,-1,&_debugroot);
|
||||
sq_addref(_v,&_debugroot);
|
||||
|
||||
//creates a emptyslot to store the watches
|
||||
sq_pushstring(_v,_SC("watches"),-1);
|
||||
sq_pushnull(_v);
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
sq_pushstring(_v,_SC("beginelement"),-1);
|
||||
sq_pushuserpointer(_v,this);
|
||||
sq_newclosure(_v,beginelement,1);
|
||||
sq_setparamscheck(_v,2,_SC(".s"));
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
sq_pushstring(_v,_SC("endelement"),-1);
|
||||
sq_pushuserpointer(_v,this);
|
||||
sq_newclosure(_v,endelement,1);
|
||||
sq_setparamscheck(_v,2,_SC(".s"));
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
sq_pushstring(_v,_SC("attribute"),-1);
|
||||
sq_pushuserpointer(_v,this);
|
||||
sq_newclosure(_v,attribute,1);
|
||||
sq_setparamscheck(_v,3,_SC(".ss"));
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
sq_pop(_v,1);
|
||||
|
||||
//stores debug hook and error handler in the registry
|
||||
sq_pushregistrytable(_v);
|
||||
|
||||
sq_pushstring(_v,SQDBG_DEBUG_HOOK,-1);
|
||||
sq_pushuserpointer(_v,this);
|
||||
sq_newclosure(_v,debug_hook,1);
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
sq_pushstring(_v,SQDBG_ERROR_HANDLER,-1);
|
||||
sq_pushuserpointer(_v,this);
|
||||
sq_newclosure(_v,error_handler,1);
|
||||
sq_createslot(_v,-3);
|
||||
|
||||
|
||||
sq_pop(_v,1);
|
||||
|
||||
//sets the error handlers
|
||||
SetErrorHandlers();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SQDbgServer::IsConnected()
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
if ( _endpoint != INVALID_SOCKET )
|
||||
{
|
||||
fd_set set;
|
||||
#if defined(_WIN32) || defined(_PS3)
|
||||
set.fd_count = 1;
|
||||
set.fd_array[0] = _endpoint;
|
||||
#else
|
||||
FD_SET( _endpoint, &set );
|
||||
#endif
|
||||
timeval timeVal = { 0,0 };
|
||||
if ( select( 0, &set, NULL, NULL, &timeVal ) != SOCKET_ERROR )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
DevMsg( "Script debugger disconnected\n" );
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool SQDbgServer::ReadMsg()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void SQDbgServer::BusyWait()
|
||||
{
|
||||
while( !ReadMsg() )
|
||||
ThreadSleep(0);
|
||||
}
|
||||
|
||||
void SQDbgServer::SendChunk(const SQChar *chunk)
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
char *buf=NULL;
|
||||
int buf_len=0;
|
||||
#ifdef _UNICODE
|
||||
buf_len=(int)scstrlen(chunk)+1;
|
||||
buf=(char *)sq_getscratchpad(_v,(buf_len)*3);
|
||||
wcstombs((char *)buf,chunk,buf_len);
|
||||
#else
|
||||
buf_len=(int)scstrlen(chunk);
|
||||
buf=(char *)chunk;
|
||||
#endif
|
||||
send(_endpoint,(const char*)buf,(int)strlen((const char *)buf),0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void SQDbgServer::Terminated()
|
||||
{
|
||||
BeginElement(_SC("terminated"));
|
||||
EndElement(_SC("terminated"));
|
||||
ThreadSleep(200);
|
||||
}
|
||||
|
||||
void SQDbgServer::Hook(int type,int line,const SQChar *src,const SQChar *func)
|
||||
{
|
||||
switch(_state){
|
||||
case eDBG_Running:
|
||||
if(type==_SC('l') && _breakpoints.size()) {
|
||||
BreakPointSetItor itr = _breakpoints.find(BreakPoint(line,src));
|
||||
if(itr != _breakpoints.end()) {
|
||||
Break(line,src,_SC("breakpoint"));
|
||||
BreakExecution();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case eDBG_Suspended:
|
||||
_nestedcalls=0;
|
||||
case eDBG_StepOver:
|
||||
switch(type){
|
||||
case _SC('l'):
|
||||
if(_nestedcalls==0) {
|
||||
Break(line,src,_SC("step"));
|
||||
BreakExecution();
|
||||
}
|
||||
break;
|
||||
case _SC('c'):
|
||||
_nestedcalls++;
|
||||
break;
|
||||
case _SC('r'):
|
||||
if(_nestedcalls==0){
|
||||
_nestedcalls=0;
|
||||
|
||||
}else{
|
||||
_nestedcalls--;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case eDBG_StepInto:
|
||||
switch(type){
|
||||
case _SC('l'):
|
||||
_nestedcalls=0;
|
||||
Break(line,src,_SC("step"));
|
||||
BreakExecution();
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
case eDBG_StepReturn:
|
||||
switch(type){
|
||||
case _SC('l'):
|
||||
break;
|
||||
case _SC('c'):
|
||||
_nestedcalls++;
|
||||
break;
|
||||
case _SC('r'):
|
||||
if(_nestedcalls==0){
|
||||
_nestedcalls=0;
|
||||
_state=eDBG_StepOver;
|
||||
}else{
|
||||
_nestedcalls--;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case eDBG_Disabled:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define MSG_ID(x,y) ((y<<8)|x)
|
||||
//ab Add Breakpoint
|
||||
//rb Remove Breakpoint
|
||||
//sp Suspend
|
||||
void SQDbgServer::ParseMsg(const char *msg)
|
||||
{
|
||||
|
||||
switch(*((unsigned short *)msg)){
|
||||
case MSG_ID('a','b'): {
|
||||
BreakPoint bp;
|
||||
if(ParseBreakpoint(msg+3,bp)){
|
||||
AddBreakpoint(bp);
|
||||
scprintf(_SC("added bp %d %s\n"),bp._line,bp._src.c_str());
|
||||
}
|
||||
else
|
||||
scprintf(_SC("error parsing add breakpoint"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('r','b'): {
|
||||
BreakPoint bp;
|
||||
if(ParseBreakpoint(msg+3,bp)){
|
||||
RemoveBreakpoint(bp);
|
||||
scprintf(_SC("removed bp %d %s\n"),bp._line,bp._src.c_str());
|
||||
}else
|
||||
scprintf(_SC("error parsing remove breakpoint"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('g','o'):
|
||||
if(_state!=eDBG_Running){
|
||||
_state=eDBG_Running;
|
||||
BeginDocument();
|
||||
BeginElement(_SC("resumed"));
|
||||
EndElement(_SC("resumed"));
|
||||
EndDocument();
|
||||
// Send(_SC("<resumed/>\r\n"));
|
||||
scprintf(_SC("go (execution resumed)\n"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('s','p'):
|
||||
if(_state!=eDBG_Suspended){
|
||||
_state=eDBG_Suspended;
|
||||
scprintf(_SC("suspend\n"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('s','o'):
|
||||
if(_state==eDBG_Suspended){
|
||||
_state=eDBG_StepOver;
|
||||
}
|
||||
break;
|
||||
case MSG_ID('s','i'):
|
||||
if(_state==eDBG_Suspended){
|
||||
_state=eDBG_StepInto;
|
||||
scprintf(_SC("step into\n"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('s','r'):
|
||||
if(_state==eDBG_Suspended){
|
||||
_state=eDBG_StepReturn;
|
||||
scprintf(_SC("step return\n"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('d','i'):
|
||||
if(_state!=eDBG_Disabled){
|
||||
_state=eDBG_Disabled;
|
||||
scprintf(_SC("disabled\n"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('a','w'): {
|
||||
Watch w;
|
||||
if(ParseWatch(msg+3,w))
|
||||
{
|
||||
AddWatch(w);
|
||||
scprintf(_SC("added watch %d %s\n"),w._id,w._exp.c_str());
|
||||
}
|
||||
else
|
||||
scprintf(_SC("error parsing add watch"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('r','w'): {
|
||||
int id;
|
||||
if(ParseRemoveWatch(msg+3,id))
|
||||
{
|
||||
RemoveWatch(id);
|
||||
scprintf(_SC("added watch %d\n"),id);
|
||||
}
|
||||
else
|
||||
scprintf(_SC("error parsing remove watch"));
|
||||
}
|
||||
break;
|
||||
case MSG_ID('t','r'):
|
||||
{
|
||||
scprintf(_SC("terminate from user\n"));
|
||||
#ifndef _X360
|
||||
sqdbg_closesocket(_endpoint);
|
||||
#endif
|
||||
_endpoint = INVALID_SOCKET;
|
||||
}
|
||||
break;
|
||||
case MSG_ID('r','d'):
|
||||
scprintf(_SC("ready\n"));
|
||||
_ready=true;
|
||||
break;
|
||||
default:
|
||||
scprintf(_SC("unknown packet"));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
see copyright notice in sqrdbg.h
|
||||
*/
|
||||
bool SQDbgServer::ParseBreakpoint(const char *msg,BreakPoint &out)
|
||||
{
|
||||
static char stemp[MAX_BP_PATH];
|
||||
char *ep=NULL;
|
||||
out._line=strtoul(msg,&ep,16);
|
||||
if(ep==msg || (*ep)!=':')return false;
|
||||
|
||||
char *dest=stemp;
|
||||
ep++;
|
||||
while((*ep)!='\n' && (*ep)!='\0')
|
||||
{
|
||||
*dest=*ep;
|
||||
dest++;ep++;
|
||||
}
|
||||
*dest='\0';
|
||||
dest++;
|
||||
*dest='\0';
|
||||
#ifdef _UNICODE
|
||||
int len=(int)strlen(stemp);
|
||||
SQChar *p=sq_getscratchpad(_v,(SQInteger)(mbstowcs(NULL,stemp,len)+2)*sizeof(SQChar));
|
||||
size_t destlen=mbstowcs(p,stemp,len);
|
||||
p[destlen]=_SC('\0');
|
||||
out._src=( V_strrchr( p, '/' ) ) ? V_strrchr( p, '/' ) + 1 : p;
|
||||
#else
|
||||
out._src=( V_strrchr( stemp, '/' ) ) ? V_strrchr( stemp, '/' ) + 1 : stemp;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SQDbgServer::ParseWatch(const char *msg,Watch &out)
|
||||
{
|
||||
char *ep=NULL;
|
||||
out._id=strtoul(msg,&ep,16);
|
||||
if(ep==msg || (*ep)!=':')return false;
|
||||
|
||||
//char *dest=out._src;
|
||||
ep++;
|
||||
while((*ep)!='\n' && (*ep)!='\0')
|
||||
{
|
||||
out._exp.append(1,*ep);
|
||||
ep++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SQDbgServer::ParseRemoveWatch(const char *msg,int &id)
|
||||
{
|
||||
char *ep=NULL;
|
||||
id=strtoul(msg,&ep,16);
|
||||
if(ep==msg)return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void SQDbgServer::BreakExecution()
|
||||
{
|
||||
_state=eDBG_Suspended;
|
||||
while(_state==eDBG_Suspended){
|
||||
if(SQ_FAILED(sq_rdbg_update(this)))
|
||||
{
|
||||
extern bool g_bSqDbgTerminateScript;
|
||||
g_bSqDbgTerminateScript = true;
|
||||
return;
|
||||
}
|
||||
ThreadSleep(10);
|
||||
}
|
||||
}
|
||||
|
||||
//COMMANDS
|
||||
void SQDbgServer::AddBreakpoint(BreakPoint &bp)
|
||||
{
|
||||
_breakpoints.insert(bp);
|
||||
BeginDocument();
|
||||
BeginElement(_SC("addbreakpoint"));
|
||||
Attribute(_SC("line"),IntToString(bp._line));
|
||||
Attribute(_SC("src"),bp._src.c_str());
|
||||
EndElement(_SC("addbreakpoint"));
|
||||
EndDocument();
|
||||
}
|
||||
|
||||
void SQDbgServer::AddWatch(Watch &w)
|
||||
{
|
||||
_watches.insert(w);
|
||||
}
|
||||
|
||||
void SQDbgServer::RemoveWatch(int id)
|
||||
{
|
||||
WatchSetItor itor=_watches.find(Watch(id,_SC("")));
|
||||
if(itor==_watches.end()){
|
||||
BeginDocument();
|
||||
BeginElement(_SC("error"));
|
||||
Attribute(_SC("desc"),_SC("the watch does not exists"));
|
||||
EndElement(_SC("error"));
|
||||
EndDocument();
|
||||
}
|
||||
else{
|
||||
_watches.erase(itor);
|
||||
scprintf(_SC("removed watch %d\n"),id);
|
||||
}
|
||||
}
|
||||
|
||||
void SQDbgServer::RemoveBreakpoint(BreakPoint &bp)
|
||||
{
|
||||
BreakPointSetItor itor=_breakpoints.find(bp);
|
||||
if(itor==_breakpoints.end()){
|
||||
BeginDocument();
|
||||
BeginElement(_SC("break"));
|
||||
Attribute(_SC("desc"),_SC("the breakpoint doesn't exists"));
|
||||
EndElement(_SC("break"));
|
||||
EndDocument();
|
||||
}
|
||||
else{
|
||||
BeginDocument();
|
||||
BeginElement(_SC("removebreakpoint"));
|
||||
Attribute(_SC("line"),IntToString(bp._line));
|
||||
Attribute(_SC("src"),bp._src.c_str());
|
||||
EndElement(_SC("removebreakpoint"));
|
||||
EndDocument();
|
||||
_breakpoints.erase(itor);
|
||||
}
|
||||
}
|
||||
|
||||
void SQDbgServer::Break(int line,const SQChar *src,const SQChar *type,const SQChar *error)
|
||||
{
|
||||
if(!error){
|
||||
BeginDocument();
|
||||
BeginElement(_SC("break"));
|
||||
Attribute(_SC("line"),IntToString(line));
|
||||
Attribute(_SC("src"),src);
|
||||
Attribute(_SC("type"),type);
|
||||
SerializeState();
|
||||
EndElement(_SC("break"));
|
||||
EndDocument();
|
||||
}else{
|
||||
BeginDocument();
|
||||
BeginElement(_SC("break"));
|
||||
Attribute(_SC("line"),IntToString(line));
|
||||
Attribute(_SC("src"),src);
|
||||
Attribute(_SC("type"),type);
|
||||
Attribute(_SC("error"),error);
|
||||
SerializeState();
|
||||
EndElement(_SC("break"));
|
||||
EndDocument();
|
||||
}
|
||||
}
|
||||
|
||||
void SQDbgServer::SerializeState()
|
||||
{
|
||||
sq_pushnull(_v);
|
||||
sq_setdebughook(_v);
|
||||
sq_pushnull(_v);
|
||||
sq_seterrorhandler(_v);
|
||||
const SQChar *sz;
|
||||
sq_pushobject(_v,_serializefunc);
|
||||
sq_pushobject(_v,_debugroot);
|
||||
sq_pushstring(_v,_SC("watches"),-1);
|
||||
sq_newtable(_v);
|
||||
for(WatchSetItor i=_watches.begin(); i!=_watches.end(); ++i)
|
||||
{
|
||||
sq_pushinteger(_v,i->_id);
|
||||
sq_pushstring(_v,i->_exp.c_str(),(int)i->_exp.length());
|
||||
sq_createslot(_v,-3);
|
||||
}
|
||||
sq_rawset(_v,-3);
|
||||
if(SQ_SUCCEEDED(sq_call(_v,1,SQTrue,SQTrue))){
|
||||
if(SQ_SUCCEEDED(sqstd_getblob(_v,-1,(SQUserPointer*)&sz)))
|
||||
SendChunk(sz);
|
||||
}
|
||||
sq_pop(_v,2);
|
||||
|
||||
SetErrorHandlers();
|
||||
}
|
||||
|
||||
|
||||
void SQDbgServer::SetErrorHandlers()
|
||||
{
|
||||
sq_pushregistrytable(_v);
|
||||
sq_pushstring(_v,SQDBG_DEBUG_HOOK,-1);
|
||||
sq_rawget(_v,-2);
|
||||
sq_setdebughook(_v);
|
||||
sq_pushstring(_v,SQDBG_ERROR_HANDLER,-1);
|
||||
sq_rawget(_v,-2);
|
||||
sq_seterrorhandler(_v);
|
||||
sq_pop(_v,1);
|
||||
}
|
||||
|
||||
void SQDbgServer::BeginElement(const SQChar *name)
|
||||
{
|
||||
_xmlcurrentement++;
|
||||
// for ( int i = 0; i < _xmlcurrentement; i++ )
|
||||
// {
|
||||
// printf(" ");
|
||||
// }
|
||||
// printf( "BeginElement( %s )\n", name );
|
||||
XMLElementState *self = &xmlstate[_xmlcurrentement];
|
||||
scstrcpy(self->name,name);
|
||||
self->haschildren = false;
|
||||
if(_xmlcurrentement > 0) {
|
||||
XMLElementState *parent = &xmlstate[_xmlcurrentement-1];
|
||||
if(!parent->haschildren) {
|
||||
SendChunk(_SC(">")); // closes the parent tag
|
||||
parent->haschildren = true;
|
||||
}
|
||||
}
|
||||
_scratchstring.resize(2+scstrlen(name));
|
||||
scsprintf(&_scratchstring[0],_SC("<%s"),name);
|
||||
SendChunk(&_scratchstring[0]);
|
||||
}
|
||||
|
||||
void SQDbgServer::Attribute(const SQChar *name,const SQChar *value)
|
||||
{
|
||||
XMLElementState *self = &xmlstate[_xmlcurrentement];
|
||||
Assert(!self->haschildren); //cannot have attributes if already has children
|
||||
const SQChar *escval = escape_xml(value);
|
||||
_scratchstring.resize(5+scstrlen(name)+scstrlen(escval));
|
||||
scsprintf(&_scratchstring[0],_SC(" %s=\"%s\""),name,escval);
|
||||
SendChunk(&_scratchstring[0]);
|
||||
}
|
||||
|
||||
void SQDbgServer::EndElement(const SQChar *name)
|
||||
{
|
||||
// for ( int i = 0; i < _xmlcurrentement; i++ )
|
||||
// {
|
||||
// printf(" ");
|
||||
// }
|
||||
// printf( "EndElement( %s )\n", name );
|
||||
XMLElementState *self = &xmlstate[_xmlcurrentement];
|
||||
Assert(scstrcmp(self->name,name) == 0);
|
||||
if(self->haschildren) {
|
||||
_scratchstring.resize(4+scstrlen(name));
|
||||
scsprintf(&_scratchstring[0],_SC("</%s>"),name);
|
||||
SendChunk(&_scratchstring[0]);
|
||||
|
||||
}
|
||||
else {
|
||||
SendChunk(_SC("/>"));
|
||||
}
|
||||
_xmlcurrentement--;
|
||||
}
|
||||
|
||||
void SQDbgServer::EndDocument()
|
||||
{
|
||||
SendChunk(_SC("\r\n"));
|
||||
}
|
||||
|
||||
//this can be done much better/faster(do we need that?)
|
||||
const SQChar *SQDbgServer::escape_xml(const SQChar *s)
|
||||
{
|
||||
SQChar *temp=sq_getscratchpad(_v,((int)scstrlen(s)*6) + sizeof(SQChar));
|
||||
SQChar *dest=temp;
|
||||
while(*s!=_SC('\0')){
|
||||
int i=0;
|
||||
bool escaped=false;
|
||||
while(g_escapes[i].esc!=NULL){
|
||||
if(*s==g_escapes[i].c){
|
||||
scstrcpy(dest,g_escapes[i].esc);
|
||||
dest+=scstrlen(g_escapes[i].esc);
|
||||
escaped=true;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if(!escaped){*dest=*s;dest++;}
|
||||
s++;
|
||||
}
|
||||
*dest=_SC('\0');
|
||||
return temp;
|
||||
|
||||
}
|
||||
186
vscript/languages/squirrel/sqdbg/sqrdbg.cpp
Normal file
186
vscript/languages/squirrel/sqdbg/sqrdbg.cpp
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
see copyright notice in sqrdbg.h
|
||||
*/
|
||||
#include "tier0/basetypes.h"
|
||||
#include <squirrel.h>
|
||||
#if !defined( _X360 ) && !defined( _PS3 ) && !defined( POSIX )
|
||||
#include <winsock.h>
|
||||
#endif
|
||||
#include "sqrdbg.h"
|
||||
#include "sqdbgserver.h"
|
||||
SQInteger debug_hook(HSQUIRRELVM v);
|
||||
SQInteger error_handler(HSQUIRRELVM v);
|
||||
|
||||
#include "serialize_state.inl"
|
||||
#if defined(VSCRIPT_DLL_EXPORT) || defined(VSQUIRREL_TEST)
|
||||
#include "memdbgon.h"
|
||||
#endif
|
||||
|
||||
HSQREMOTEDBG sq_rdbg_init(HSQUIRRELVM v,unsigned short port,SQBool autoupdate)
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
sockaddr_in bindaddr;
|
||||
#ifdef _WIN32
|
||||
WSADATA wsadata;
|
||||
if (WSAStartup (MAKEWORD(1,1), &wsadata) != 0){
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
SQDbgServer *rdbg = new SQDbgServer(v);
|
||||
rdbg->_autoupdate = autoupdate?true:false;
|
||||
rdbg->_accept = socket(AF_INET,SOCK_STREAM,0);
|
||||
bindaddr.sin_family = AF_INET;
|
||||
bindaddr.sin_port = htons(port);
|
||||
bindaddr.sin_addr.s_addr = htonl (INADDR_ANY);
|
||||
if(bind(rdbg->_accept,(sockaddr*)&bindaddr,sizeof(bindaddr))==SOCKET_ERROR){
|
||||
delete rdbg;
|
||||
sq_throwerror(v,_SC("failed to bind the socket"));
|
||||
return NULL;
|
||||
}
|
||||
if(!rdbg->Init()) {
|
||||
delete rdbg;
|
||||
sq_throwerror(v,_SC("failed to initialize the debugger"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return rdbg;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
SQRESULT sq_rdbg_waitforconnections(HSQREMOTEDBG rdbg)
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
if(SQ_FAILED(sq_compilebuffer(rdbg->_v,serialize_state_nut,(SQInteger)scstrlen(serialize_state_nut),_SC("SERIALIZE_STATE"),SQFalse))) {
|
||||
sq_throwerror(rdbg->_v,_SC("error compiling the serialization function"));
|
||||
}
|
||||
sq_getstackobj(rdbg->_v,-1,&rdbg->_serializefunc);
|
||||
sq_addref(rdbg->_v,&rdbg->_serializefunc);
|
||||
sq_pop(rdbg->_v,1);
|
||||
|
||||
sockaddr_in cliaddr;
|
||||
int addrlen=sizeof(cliaddr);
|
||||
if(listen(rdbg->_accept,0)==SOCKET_ERROR)
|
||||
return sq_throwerror(rdbg->_v,_SC("error on listen(socket)"));
|
||||
rdbg->_endpoint = accept(rdbg->_accept,(sockaddr*)&cliaddr,(socklen_t *)&addrlen);
|
||||
//do not accept any other connection
|
||||
sqdbg_closesocket(rdbg->_accept);
|
||||
rdbg->_accept = INVALID_SOCKET;
|
||||
if(rdbg->_endpoint==INVALID_SOCKET){
|
||||
return sq_throwerror(rdbg->_v,_SC("error accept(socket)"));
|
||||
}
|
||||
while(!rdbg->_ready){
|
||||
sq_rdbg_update(rdbg);
|
||||
}
|
||||
#endif
|
||||
return SQ_OK;
|
||||
}
|
||||
|
||||
SQRESULT sq_rdbg_update(HSQREMOTEDBG rdbg)
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
#ifdef _WIN32
|
||||
TIMEVAL time;
|
||||
#else
|
||||
struct timeval time;
|
||||
#endif
|
||||
time.tv_sec=0;
|
||||
time.tv_usec=0;
|
||||
fd_set read_flags;
|
||||
FD_ZERO(&read_flags);
|
||||
FD_SET(rdbg->_endpoint, &read_flags);
|
||||
select(NULL/*ignored*/, &read_flags, NULL, NULL, &time);
|
||||
|
||||
if(FD_ISSET(rdbg->_endpoint,&read_flags)){
|
||||
char temp[1024];
|
||||
int size=0;
|
||||
char c,prev=NULL;
|
||||
memset(&temp,0,sizeof(temp));
|
||||
int res;
|
||||
FD_CLR(rdbg->_endpoint, &read_flags);
|
||||
while((res = recv(rdbg->_endpoint,&c,1,0))>0){
|
||||
|
||||
if(c=='\n')break;
|
||||
if(c!='\r'){
|
||||
temp[size]=c;
|
||||
prev=c;
|
||||
size++;
|
||||
}
|
||||
}
|
||||
switch(res){
|
||||
case 0:
|
||||
return sq_throwerror(rdbg->_v,_SC("disconnected"));
|
||||
case SOCKET_ERROR:
|
||||
return sq_throwerror(rdbg->_v,_SC("socket error"));
|
||||
}
|
||||
|
||||
temp[size]=NULL;
|
||||
temp[size+1]=NULL;
|
||||
rdbg->ParseMsg(temp);
|
||||
}
|
||||
#endif
|
||||
return SQ_OK;
|
||||
}
|
||||
|
||||
SQInteger debug_hook(HSQUIRRELVM v)
|
||||
{
|
||||
SQUserPointer up;
|
||||
intp event_type,line;
|
||||
const SQChar *src,*func;
|
||||
sq_getinteger(v,2,&event_type);
|
||||
sq_getstring(v,3,&src);
|
||||
sq_getinteger(v,4,&line);
|
||||
sq_getstring(v,5,&func);
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
HSQREMOTEDBG rdbg = (HSQREMOTEDBG)up;
|
||||
rdbg->Hook(event_type,line,src,func);
|
||||
if(rdbg->_autoupdate) {
|
||||
if(SQ_FAILED(sq_rdbg_update(rdbg)))
|
||||
return sq_throwerror(v,_SC("socket failed"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SQInteger error_handler(HSQUIRRELVM v)
|
||||
{
|
||||
SQUserPointer up;
|
||||
const SQChar *sErr=NULL;
|
||||
const SQChar *fn=_SC("unknown");
|
||||
const SQChar *src=_SC("unknown");
|
||||
int line=-1;
|
||||
SQStackInfos si;
|
||||
sq_getuserpointer(v,-1,&up);
|
||||
HSQREMOTEDBG rdbg=(HSQREMOTEDBG)up;
|
||||
if(SQ_SUCCEEDED(sq_stackinfos(v,1,&si)))
|
||||
{
|
||||
if(si.funcname)fn=si.funcname;
|
||||
if(si.source)src=si.source;
|
||||
line=si.line;
|
||||
scprintf(_SC("*FUNCTION [%s] %s line [%d]\n"),fn,src,si.line);
|
||||
}
|
||||
if(sq_gettop(v)>=1){
|
||||
if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr))) {
|
||||
scprintf(_SC("\nAN ERROR HAS OCCURED [%s]\n"),sErr);
|
||||
rdbg->Break(si.line,src,_SC("error"),sErr);
|
||||
}
|
||||
else{
|
||||
scprintf(_SC("\nAN ERROR HAS OCCURED [unknown]\n"));
|
||||
rdbg->Break(si.line,src,_SC("error"),_SC("unknown"));
|
||||
}
|
||||
}
|
||||
rdbg->BreakExecution();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
SQRESULT sq_rdbg_shutdown(HSQREMOTEDBG rdbg)
|
||||
{
|
||||
#ifndef _GAMECONSOLE
|
||||
delete rdbg;
|
||||
#ifdef _WIN32
|
||||
WSACleanup();
|
||||
#endif
|
||||
#endif
|
||||
return SQ_OK;
|
||||
}
|
||||
50
vscript/languages/squirrel/sqdbg/test.nut
Normal file
50
vscript/languages/squirrel/sqdbg/test.nut
Normal file
@@ -0,0 +1,50 @@
|
||||
local x=10;
|
||||
local y="asd"
|
||||
local testy = function(){return 0;}
|
||||
|
||||
TestTable <- {
|
||||
livello2 = {
|
||||
livello3 = {
|
||||
["yooo"]="I'm cool",
|
||||
["jaaaa"]=[1,2,3,4,5,6,7,8,9,10],
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function TestFunc(a,b)
|
||||
{
|
||||
local z=100
|
||||
local s="I'm a string"
|
||||
for(local i=0;i<10;i++)
|
||||
TestTable.cappero(z,i);
|
||||
//index_that_desnt_exist=100; //error
|
||||
return 0;
|
||||
}
|
||||
|
||||
function TestTable::cappero(a,b)
|
||||
{
|
||||
local ueueueu=100
|
||||
local s={x="I'm a string"}
|
||||
oioioi(1,2)
|
||||
}
|
||||
|
||||
function TestTable::oioioi(a,b)
|
||||
{
|
||||
local frrrr=100
|
||||
local xyz={x="I'm a string"}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
local i = 0;
|
||||
while(1)
|
||||
{
|
||||
local ret;
|
||||
local testweak = "asdasd";
|
||||
local weako = testweak.weakref();
|
||||
i++;
|
||||
ret=TestFunc("param 1","param 2");
|
||||
}
|
||||
|
||||
15
vscript/languages/squirrel/sqdbg/testscripts/test.nut
Normal file
15
vscript/languages/squirrel/sqdbg/testscripts/test.nut
Normal file
@@ -0,0 +1,15 @@
|
||||
//loads an external file
|
||||
dofile("utils\\coMmons.nut");
|
||||
|
||||
//declares some locals
|
||||
local x=10;
|
||||
local y="asd"
|
||||
local testy=function(){return 0;}
|
||||
|
||||
|
||||
while(1)
|
||||
{
|
||||
local ret;
|
||||
ret = TestFunc("param 1","param 2");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
Fagiano <- {
|
||||
livello2 = {
|
||||
livello3 = {
|
||||
[{}]="I'm cool",
|
||||
[([])]=[1,2,3,4,5,6,7,8,9,10],
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function TestFunc(a,b)
|
||||
{
|
||||
local z=100
|
||||
local s="I'm a string"
|
||||
for(local i=0;i<10;i++)
|
||||
Fagiano.cappero(z,i);
|
||||
//index_that_desnt_exist=100; //error
|
||||
return 0;
|
||||
}
|
||||
|
||||
function Fagiano::cappero(a,b)
|
||||
{
|
||||
local ueueueu=100
|
||||
local s={x="I'm a string"}
|
||||
oioioi(1,2)
|
||||
}
|
||||
|
||||
function Fagiano::oioioi(a,b)
|
||||
{
|
||||
local frrrr=100
|
||||
local xyz={x="I'm a string"}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user