Standard Jet DBnb` Ugr@?~1y0̝cßFNa7fޜ((,`o{6߱LnC53y[/|*|)yf_Љ$g'DeFx -bT4.0Gdv Y$ValuesS $$ Y  e Y uY  Y Y  Y  eY  Y  o Y P Y A Y H Y t Y 2Y  Y   Y  lY ConnectDatabaseDateCreateDateUpdate FlagsForeignNameIdLvLvExtraLvModule LvPropName OwnerParentIdRmtInfoLongRmtInfoShortTypeYYIdParentIdName        OYn8~bS#Y Y Y  Y 2ACMFInheritableObjectIdSID  AtYObjectId Y8~bSY  Y Y Y  Y T Y Y  Y AttributeExpressionFlagLvExtra Name1 Name2ObjectId Ordernzf edY"ObjectIdAttribute -Y8~bSY Y Y  Y T Y : Y U Y B Y nccolumn grbiticolumnszColumnszObject$szReferencedColumn$szReferencedObjectszRelationshippc,au rtB&epo FrjCeaN neYYYszObject$szReferencedObjectszRelationshipYv1b N  : k & W  C t/ @@  @@@@  @@@ MYmYQkOYkmJbMQk`JYbSdi`fidUiQkkUiJfWUJ`komY^OJmJJMMQkkfJUQkOJmJLJkQkSdi`k `dOo^QkiQ^JmYdbkWYfkiQfdimk kMiYfmk kvkiQ^mJL^Qk+kh+SMYmYQk+kh+SOYkmJbMQkMYmYQkOYkmJbMQk^JiUQmQum`Yb`Juh`kvkJMMQkkdL[QMmk`kvkJMQk`kvkbJqfJbQUidofMJmQUdiYQk `kvkbJqfJbQUidofk!`kvkbJqfJbQUidofmddL[QMmk"`kvkbJqfJbQdL[QMmYOk#`kvkdL[QMmk`kvkhoQiYQk`kvkiQ^JmYdbkWYfkkd^omYdbkd^omYdbhJMMQkk^Jvdom`kvkOLko``JivYbSd okQiOQSYbQO   @ @ @ @          -1@ !"#B  @ @ @ @ @ @ @ @ @ @ @ @ @ @ !"#$%&'()*+,-./0123@AB C D E F G H I J K L M N O L LLLLLLLLL L L L L   456-7-8-91:1;1<@=@>@?LLLLLLLLLLLLLLLL     @ @ @ DDDDDDD D D  D  D  D  D  D D D DDDDDDDDD   *$d _ Z 7 T  _  N %qfp,y'5d$}@;d$}@ MSysNavPaneObjectIDs4MR2KeepLocal  TJJJJJJJH @#}@#}@ MSysNavPaneGroupToObjects4MR2KeepLocal  TTTTTTTTR @#}@#}@ MSysNavPaneGroups4MR2KeepLocal  TDDDDDDDB @#}@#}@ MSysNavPaneGroupCategories4MR2KeepLocal  TVVVVVVVT @d/*|G@d/*|G@~sq_fcitiesa @B4MR2KeepLocal TD8888886 ` WK{G@'*|G@AccessLayout4MR2KeepLocal T@zz:::::::8 @>p{G@>p{G@~sq_fdistances@4MR2KeepLocal TJ>>>>>>< `L{G@L{G@GamsUtil22222222220 A{G@A{G@MainFormT@>>>22222220 @ {G@{G@ProgressT@ >>>22222220 @  {G@ {G@GraphT@ 888,,,,,,,* @ f{G@f{G@distancesT@ @@@44444442 @ W{G@W{G@citiesT@:::......., @ H։{G@H։{G@solutionq@?`@EL@@44444442 @?,_{G@?,_{G@MinMaxQ@?`@EH<<0000000. @@*>Ȇ{G@*>Ȇ{G@solutionB@?>>>22222220 @1F˅{G@˅{G@distances@?@@@44444442 @-{G@{G@cities%@:::......., @I]{G@R]{G@largetext@@@@44444442 @;O{G@;O{G@DataAccessPages@@@@@@@@@@> ;O{G@;O{G@SysRel.........., ;O{G@;O{G@Modules0000000000. ;O{G@;O{G@Scripts0000000000. ;O{G@;O{G@Reports0000000000. ;O{G@;O{G@Forms,,,,,,,,,,*  ;O{G@;O{G@UserDefinedA@DDD88888886 @ ;O{G@ G@SummaryInfoP@DDD88888886 @;O{G@;O{G@MSysAccessObjectsDDDDDDDDDDB ;O{G@;O{G@MSysRelationshipsDDDDDDDDDDB ;O{G@;O{G@MSysQueries88888888886 ;O{G@;O{G@MSysACEs22222222220 ;O{G@;O{G@MSysObjects88888888886 ;O{G@g*}@MSysDb@!:::......., @;O{G@;O{G@Relationships<<<<<<<<<<: ;O{G@;O{G@Databases44444444442 ;O{G@;O{G@Tables.........., fP{hUB/A S @ ,  |  B /   l Y 2 o\I"r_K8%taN:'      \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p       \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p       \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p       \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p  @ @ \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p @ 1 1 \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p 1 - - \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p -   \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p     \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p      \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p   \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p   \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p T \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p T \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p  \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p             Y=N=Y Y DataID։YAOIndexv1?  @ @ @ @ @ @ @ GHIJK M N O P QRSTUVWXYZ[\]^_`abc d!e"f#g$h%i&j'k(l)m*n+o,p-q.r/s0t1u2v3x4y5w6{7z8|9}:;<K[Mu!OuL=eDuBbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb   @ PbMSysAccountsxx x xMR2K[ࡱ> $EG+Root Entryj4%VPropData Forms `A`h4QehReports%`A`h`bh( ?}&1# {<7',;)-._23~"@HIacdefqstuvwxyz|Root EntryI4*OPropData Forms `A`h4QehReports%`A`h`bh02=Babc(e gh i-jEk>z[nB@;RDfj$ UProgressCalibrid2d Calibrihg hCalibrimgi Calibrir35w2`  Detail*aINczh1U`aPgInterruptButton Ctrl-C"[Event Procedure] TahomaݺI !noh1U`LaPgiKillButtonCtrl-Break"[Event Procedure] Tahoma cTJ-B J/9"0(# 4C68K:=DMNOPQRSTUVWXYZ\]^`ghijklmnoprDirData25PropData Modules4`A`h`bhScripts`A`h`A`hVBA`A`hj4CmdbarsK[`A`h`A`hh1U`aPgiClearButton Clear"[Event Procedure] Tahoma?kxSL*Y=w026Ub(c$deTextBoxࡱ> Root EntryҋB `@2I@OleObjectDataAccessObjSiteData&8 Root EntryҋB `MGIOleObjectData<AccessObjSiteData&888`ҋB `!HG* 4gms Start 12/28/07 08:07:17 GAMS Rev 149 Copyright (C) 1987-2007 GAMS Development. All rights reserved Licensee: Erwin Kalvelagen G070509/0001CE-WIN GAMS Development Corporation DC4572 --- Starting compilation --- mst.gms(221) 3 Mb --- Starting execution: elapsed 0:00:00.007 --- mst.gms(217) 4 Mb --- Generat&Microsoft Forms 2.0Forms.TextBox.1(~4FzeRoot EntryLVALпϰ 777;;;;;;;MR2^AccessVMR2@ Title AuthorCompanySubject, $Graph Optimization(  Erwin Kalvelagen  R JTSP and MST problems sMR2@ Title AuthorCompanySubject, $Graph Optimization(  Erwin Kalvelagen  R JTSP and MST problems solved with GAMSMR2 GUIDNameMap0 SpjJN +  UMR2 GUIDNameMap0 j~ZOFK*L%W  UMR2 GUIDNameMap0 ;RDfj$  UMR2 GUIDNameMap0 ߖ]d"C '~0  UMR2 GUIDNameMap0 WOBN/&Lw s  UMR2OrientationOrderByOnNameMapDefaultViewDescriptionColumnWidthColumnOrderColumnHiddenRequiredAllowZeroLengthDisplayControlIMEModeIMESentenceMode$UnicodeCompressionDecimalPlacesDefaultValue  (   UZ4kblob       MR2( ReplicateProject K[ҋB `MGIOleObjectDataPropData 0PropData 03'5bhpFbhPropData kA@WOBN/&Lw s U&Access GAMS Example"[Event Procedure] Ariald2 Tahomae12g237hgh Tahomai1ghk1w2` Detail>Cwytz- h1U`abdCitiesButtonShow Cities"[Event Procedure]V)fGgXh1U`abdiDistButtonShow Distances"[Event Procedure]^c)EI6=<8h1U`atbdiRunButtonRun Optimizer"[Event Procedure]"[Event Procedure] $#[e?I+vR05h1U`aTbdiQuitButtonQuit App"[Event Procedure]ND_6Vd5U` ab` c3f Label5@Show table with city coordinates_i/Lrh3}ad5U` ab` c3f Label7&Show distance tabletYJKIId5U` ab` c3f Label8Run GAMSFZAPd)Mid5U` ab` c3f Label9*Quit this application_`F?xh1k5U`ab ci Frame66^/Hr'*)Qd25`tapbc LabelAlgorithmMKUzIk1ii2W`a mstoptionKMMGOؾd5`va bScmstlabel*Minimum Spanning Tree|߯Fa9X i2W`a^ tspoption=?HmF-d5`va@ bSctsplabel.TravelinPropData&'3". bhpFbhIOCDWDHDTXEZMDJTEPZEJCRUYHTM:[(_VBA_PROJECT/LDetachedLabelΦ^L%cBrd5U7` a<b ccity2_Label city2DetachedLabel;Jd5U7`a<b cdistance_LabeldistanceDetachedLabelc4M+}7뙠`h Detail*g7JM !m7UF`<a<b e city1 city1city from\pKTŋƆm7UF` a<b e k city2 city2city tou4 ~|A @@ȑeMm7UF`a<b e kdistancedisCustomGroups `A`h`A`hDirDataVBAProject `hj4AcessVBAData CustomGroups `A`h`A`hDirData\YlidatiN Y Fd Y y Y Nkeylargetextblobrrom+eni rt,tMYYkeyPrimaryKey v1b tLVALfThe blob contains the gamsinterrupt.dll.$ontext Minimum Spanning Tree using an LP formulation Original model: Erwin Kalvelagen, april, 2002 Model solved from Access: Erwin Kalvelagen, November 2007 $offtext $if not set db $error db is not set $onecho > mdb2gms.txt i=%db% x=db.gdx q1=select distinct code from cities s1=i q2=select city1,city2,distance from distances p2=d $offecho $call =mdb2gms.exe @mdb2gms.txt set i 'cities'; alias (i,j,k); parameter d(i,j) 'distances'; $gdxin db.gdx $load i,d display i,d; alias(i,t); set s(i) 'source node (can be any node)' /c40/; set term(i) 'terminal nodes'; term(i)$(not s(i)) = yes; parameter uarc(i,j) 'undirected arcs'; uarc(i,j)=d(i,j); parameter c(i,j) 'cost directed arcs'; c(i,j) = uarc(i,j) + uarc(j,i); set links(i,j); links(i,j)$c(i,j) = yes; parameter b(i,t) 'right-hand side'; b(s,term) = -1; b(term,term) = 1; variables z 'objective' x(i,j) '0-1 variable indicating tree' y(i,j,t) 'flow variables (last index is terminal node)' ; binary variable x,y; equations objective 'minimize total cost' nodebal(i,t) 'node balance' compare(i,j,t) 'force x(i,j)>=y(i,j,t)' ; objective.. Z =e= sum(links, c(links)*x(links)); nodebal(i,term(t)).. Sum(links(i,j), y(i,j,t)) - sum(links(j,i), y(j,i,t)) =e= b(i,t); compare(links(i,j),term(t)).. X(i,j) =g= y(i,j,t); option iterlim=100000; model m /all/; m.optfile=1; solve m minimizing z using rmip; display y.l, x.l; file log /''/; if (m.modelstat<>1, put log, "**** ERROR: Model not solved to optimality"/; abort$1 "Model not solved to optimality"; ); $if exist solution.csv $call del solution.csv file sol /solution.csv/; sol.pc = 5; put sol; loop((i,j)$(x.l(i,j)>0.5), put i.tl,j.tl/; ); $onecho > cplex.opt lpmethod 4 $offecho|dllP@քtspmodel%ք mstmodel@ LVALք$ontext This model solves a Symmetric TSP using a simple algorithm that adds cuts to exclude subtours found in the previous solution. Reference: Dantzig, Fulkerson, Johnson, "Solution of a Large-Scale Traveling-Salesman Problem", Operations Research, 2, 1954, pp.393-410. Copyright Erwin Kalvelagen, 2007 $offtext option optcr=0; option iterlim=100000; option reslim=10000; option limrow=0; option limcol=0; option solprint=off; $eolcom // $if not set db $error db is not set $onecho > mdb2gms.txt i=%db% x=db.gdx q1=select distinct code from cities s1=i q2=select city1,city2,distance from distances p2=d $offecho $call =mdb2gms.exe @mdb2gms.txt set i 'cities'; alias (i,j,k); parameter d(i,j) 'distances'; $gdxin db.gdx $load i,d display i,d; set lt(i,j) lower triangular; lt(i,j)$(ord(i)>ord(j)) = yes; free variable z; binary variable x(i,j); equations twomatch(i), obj; obj.. z =e= sum(lt(i,j), d(i,j)*x(i,j)); twomatch(k).. sum(lt(i,k), x(i,k)) + sum(lt(k,j),x(k,j)) =e= 2; model match /obj,twomatch/; solve match minimizing z using mip; file log /''/; if (match.modelstat<>1, put log, "**** ERROR: Model not solved to optimality"/; abort$1 "Model not solved to optimality"; ); display x.l; * * dynamic number of cuts * set cycle /cycle1*cycle50/; set t tours /t1*t100/; set cutindex(cycle,t) dynamic set for addressing cuts; equation cut(cycle,t) actual cuts; parameter cutcoeff(cycle,t,i,j) coefficients in cuts; parameter cutlength(cycle,t) rhs for cuts; cut(cutindex).. sum((i,j), cutcoeff(cutindex,i,j)*x(i,j)) =l= cutlength(cutindex)-1; model tsp /obj, twomatch, cut/; * * used to find and display tours * set s(i,j) current solution; set tour(t,i,j) subtours; set tt(t) current subtour; set first(i,j) 'first (i,j) in S'; set reach(i,j) "(i,j)'s connected to tour(tt)"; scalar done /0/; scalar continue; parameter results;LVAL // for reporting results('relaxed','obj')=z.l; results('relaxed','total constraints') = match.numequ; loop(cycle, * * initialization * tour(t,i,j) = no; s(i,j) = no; first(i,j) = no; reach(i,j) = no; done = 0; tt(t) = no; tt(t)$(ord(t)=1) = 1; // initialize tt(1) = yes s(i,j)=yes$(x.l(i,j) > 0.5); // initialize to current solution while(not done, * * pick any (i,j) from remaining solutions * first(i,j)=no; loop((i,j)$(card(first)=0), first(i,j) = s(i,j); ); * display first; * * this is he beginning of a new subtour * tour(tt,first) = yes; s(first) = no; continue = 1; while(continue, * * find (i,j)'s connected to tour(tt) * note that the loop over tt is just syntax: tt contains one element * reach(i,j) = no; loop((tt,k), reach(s(i,j))$tour(tt,k,j) = yes; reach(s(i,j))$tour(tt,i,k) = yes; reach(s(i,j))$tour(tt,k,i) = yes; reach(s(i,j))$tour(tt,j,k) = yes; ); * display tour,s,reach; * * if reach = empty then we can stop the while loop * if (card(reach)=0, continue = 0); * * add them to the current subtour * note that the loop over tt is just syntax: tt contains one element * loop(tt, tour(tt,reach) = yes; ); s(reach) = no; ); * display tour; * * if no remaining solutions, we are done * if (card(s)=0, done=1); * * new subtour * tt(t) = tt(t-1); // t := t + 1 ); cutindex(cycle,t)$(sum(tour(t,i,j),1)>0.5) = yes; * * check * option tour:0:1:1; display tour; loop(cutindex(cycle,t), abort$(sum(tour(t,i,j),1) < 2.5) "subtour with 1 or 2 points"; ); if (sum(cutindex(cycle,t),1) > 1.5, cutcoeff(cycle,tour(t,i,j))$cutindex(cycle,t) = 1; cutlength(cutindex(cycle,t)) = sum(tour(t,i,j),1); option cutindex:0:1:1; 0 LVAL@ option cutcoeff:0:1:1; * display cutindex,cutcoeff,cutlength; solve tsp minimizing z using mip; if (tsp.modelstat<>1, put log, "**** ERROR: Model not solved to optimality"/; abort$1 "Model not solved to optimality"; ); display x.l; results(cycle,'obj') = z.l; results(cycle,'cuts added') = sum(cutindex(cycle,t), 1); results(cycle,'total constraints') = tsp.numequ; * display results; else display "Optimal solution found!"; done = 1; ); ); display results; $if exist solution.csv $call del solution.csv file sol /solution.csv/; sol.pc = 5; put sol; loop((i,j)$(x.l(i,j)>0.5), put i.tl,j.tl/; );LVALք MZ@ !L!This program cannot be run in DOS mode. $oa0YcYcYc\oc[c\cMcRc\cYc c\Pcc\ScXc\UcXcRichYcPEL(G!  `Ppxx<Hp$.textS` `.rdatap p@@.data@.reloc @BLVAL!UhXPDžXXQpE}uDžXXRpu3 3h]UEPjj:pE}t.MQUREPM QUREEPpE3]UEPj(pPpu3tMQh0jpuURp3QEEEMMEjjjURjEPpuMQp3URp]UXEEEEEh0Pj@h (qQjUR@pE}ujhh0jEP@pE}uj (qQhPUREPuoFu jXyHPpt?Wpt4%>uN@ uNF hPYYtF N@NCr5p3_^][HVW>t1t G Pp$;r6&Y|_^S39VWu153;u0<=tGV9 Yt:uP ;Y=uX5U*V E>=YtU;Yt7VPYY8u53Y]_^[5UQS] 39UWt ME98"u3Ʌ@ѱ"-tG@at tG@ɋ] t2u t utGe8 t u@H8}t ME93C3@B8\t8"u&u}t H9"u339MMt t\GJutH}u t= t8t.tatG@Gat@@htG] !Et _[UQQSVW39=uhVWp;lj5șt8uލEPWu3ɋ;uEP u%EP >Wu EHYY=3_^[QQSUVW=p33;j]u-׋;t hpxu ţu};u׋;tyf9tf9uf9u=pSSS+S@PVSSD$4׋;t2U;YD$t#SSUPt$$VSSׅut$Y\$\$VpP;t;t3Dp;t8t @8u@8u+@Uu;Yu3 UVW Vp_^][YYj hq5El}ls"eEt 3@ËeME9j hqEt}ts"eEt 3@ËeMEÃ=u =r3@jX39D$jhPpt*uhYu5p33@Ã=uiS39,U-xp~EV50W=p h@h6hj6vj5ՃC;,|_^50j5][5p=săPQL$-=s+ȋą@PUQSVW}VTt99t @ ;r@;s99t3ɅYۉ]u a3@FXEE FXAhl;}'R~Td8=hlB߃ ;|] ~\u F\du F\Su F\Bu F\1u F\ u F\uF\v\jY~\aPӋEYFX u p_^[øcsm9D$u t$PYY33@ h)dPD$l$l$+SVWEePEEEEdËMd Y_^[QVC20XC00USVWU] E@EEEECs {S] t{t} vD tYVUk33333]^] t?xH{S3kVSh vjDC D33333Ћ{ v4댸#EHUkjS]]_^[]UL$)APAP]U$t ЕSV3W3; xt@r;x;u =hEPRpuEhuPYY}P1@t~t WW&Y0|ܾ_t ~uPӃ0|^[UE4p]jhvWYM 3@j MYUEV4>uPGYujY6p^]V5Y 𡨡+Ѓ;sN;sQPYYuV5YYu^Ë +  9^hYujXà 3j hve};EM Emt$YHVt$Fth  Yu;tuYE;uo>dFLFDF 3E}f EpfLF@3E=} `L0@3E=}0@5H}u;5Ht VhY}M E:j YÃ=ujY3h@j5|p0uËL$%(%,83 4<@á, 0 T$+P r ;r3UMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJ;։Mv;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LM Ls%}uʻM DD )}uJM YJꍄ ED0E( @5ph@H SQ֋ @( P(@ @(@HC(HyCu `(xuiSjp ֡(pj5xp,0ȡ(+ȍLQHQPE ,;(vm08E(=@[_^á, <W3;u4DPP50W5p;u3_Ã<0, 0VhAj54|p;ljFu3Cjh hWp;ljF uvW5xpЃN>~,F^_UQQMASVqW3C}i0Dj?EZ@@Jujhy hWpup;UwC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[U MASVuW} +Q iDMOI;|9M]UE;;MI?Mvj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M O?L1vj?_]][Y]YKYKY;YuWLM Ls}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN?] Kvj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLM Ls}uοM 9DD }uNM yN ED3@_^[UM,0SMVWI <}} M 3E8؉u;K;#M# u ;]]r;]u$K;#M# u ;؉]r;8CUt|D#M# u6#UeHD1#u ֋uu#UE9# tUiDMLD3#um#Mj _^{u ];]r;]u& {u ;؉]r;u؅ۉ]tSYKC8$3zG}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OMLVAL$|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uɍy>u;(uM; @u%(MB_^[á`tt$ЅYt3@3̋T$ L$tO3D$Wr1كt +шuʃtt uD$_ËD$t$p3@jhwhu7=t$hqXpthwP4phu 0Aheu uЉE$EE3@Ëe}ujdp3Mj hxu=u.;54w&jYeVYEM3Eu#uF=tVj5|pfËujYÃ|$w"t$uYu9D$tt$FYu35dt$YY̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+UWVu M};v;|ur)$lDǺr $C$|D$DCCC#ъFGFGr$lDI#ъFGr$lD#ъr$lDIcDPDHD@D8D0D(D DDDDDDDDDDDDDDD$lD|DDDDE^_ÐE^_ÐFGE^_ÍIFGFGE^_Ðt1|9u$r $F$EIǺr +$ E$FE@EhEF#шGr$FIF#шGFGr$FF#шGFGFGV$FIEEEEEEEEDDDDDDDDD D DDDD$FF F0FDFE^_ÐFGE^_ÍIFGFGE^_ÐFGFGFGE^_USVWUjjhxFuF]_^[]ËL$AtD$T$SVWD$PjhFd5d%D$ Xp t.;t$$t(4v L$H |uhD@Td _^[3d yFuQ R 9QuSQ SQMKCk Y[U SVu^udEEH;ىMr ;Xs3W~ u3@3҉UËt;ExtEB ;v}tF;E";p3~9-. h(((( H   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0f5InitializeCriticalSectionAndSpinCountAA:BGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAuser32.dllKKGetCurrentThreadId GetCommandLineAExitProcessuGetModuleHandleAFTerminateProcessKTlsAllocSetLastErrorhGetLastErrorLTlsFreeNTlsSetValueMTlsGetValueHeapFreeHeapAllocSetHandleCountGetStdHandle^GetFileTypeGetStartupInfoADeleteCriticalSectionsGetModuleFileNameAFreeEnvironmentStringsAMGetEnvironmentStringsFreeEnvironmentStringsW~WideCharToMultiByteOGetEnvironmentStringsWHeapDestroyHeapCreatemVirtualFreeWUnhandledExceptionFilterWriteFile@LeaveCriticalSectionEnterCriticalSectionGetACPGetOEMCPGetCPInfojVirtualAlloc HeapReAllocInitializeCriticalSectionRtlUnwindInterlockedExchangerVirtualQueryHeapSizekGetLocaleInfoAGetStringTypeAdMultiByteToWideCharGetStringTypeW3LCMapStringA4LCMapStringWQueryPerformanceCounterGetTickCount<GetCurrentProcessIdGetSystemTimeAsFileTimepVirtualProtectGetSystemInfoKERNEL32.dll(GV8DP`@PhvGamsInterrupt.dllGamsInterruptremotef0remotef1LVAL)[m.o5SeDebugPrivilegekernel32.dllLoadLibraryAGetModuleHandleAFreeLibraryGetProcAddressgamsinterrupt.dllremotef0remotef1  x xuLu u t\t,ttss|sDs sr@rx0ry rzr rqC zH8CC`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~ N@        ! 5A CPR S WY l m pr   )    Hyyyyyyyyyyyyyxytypylyhydy`y\yXyTyPyLyHy@y4y,y$ydyyy yyxxxxxxxx z|.МММММММММ .pPSTPDTp;Zx0Nm:Yw/MlLVAL*800P0000000 1@1N1\1111222\2b2u22222222 3.3H3~334.4>4I5Y5|555577777778 88C8^8f8l88888999999::::+:[:m:r:::::::::; ;;;";3;8;C;H;b;;;;;;;;;<<$<1> >>>">(>/>4>9>>>C>I>M>R>W>]>e>>>>>>>??*?N?c????? 0&0A0v0}000001>1l1z11112#212@2v2222222<34+4k4|444444455'535?5F5r5556&62696j6v6}6666667 77$7+747;7b7n7x77777c8h88889e9:::;;<;H;{;;;;;;; <<1<@2>E>K>P>\>d>{>>>>> ?-?Z????00 00)080G0^0s000000 11!1111111 22$242N2Z2l2z2222222$363V3\3}333333333333"4>4L4V4c4m4z44444444 5&565B5q5555555555558+818K8P8_8h8u8888888888889 999949;9A9O9U9Z9`9n9z99999#:===P>@000061C1M1W1_1e1n1u1z11111112*202t2X3p3w33333333444 44444f4l4p4t4x4445 555595c555555555566 666l6670797778{888888888999*9>9R9d99999999999999999:%:=:N:g:;;;;_>d>>> ?;?_?i???`v00003pD4181`1p1|11111116 6777788888>>>>?? ??00 11T1X10000|111111111111111112 2p3333@7H7L7P7T7X7\7`7d7h7l7p7t7x7|77777777777777777777777777777788 88888 8$8(8,808<888LVAL O^^`km`dOQ^mkf`dOQ^ O^^`km`dOQ^mkf`dOQ^3Y*8~bN..** Y d Y dY Y codenamexyjtD.0YPrimaryKeyv1-*\1`: u G  v N ) Z /  e 9  r K Wc42Portland, Me. Rc41Boston, Mass. =c40Washington, D.C.! 6c39Richmond, Va. -c38Raleigh, N.C. $c37Columbia, S.C. c36Jacksonville, Fla.#  c35Atlanta, Ga. }c34Birmingham, Ala.! q c33New Orleans, La.! pc32Jackson, Miss. p%c31Memphis, Tenn. h#c30Little Rock, Ark." Uc29Dallas, Tex. S&c28Oklahoma City, Okla.% Y7c27Topeka, Kans. _7c26Kansas City, Mo.! cCc25Des Moines, Iowa! XAc24Omaha, Neb. :Bc23Cheyenne, Wyo. 9;c22Denver, Colo. 4)c21Santa Fe, N.M. !c20Phoenix, Ariz. *c19Los Angeles, Calif.$ Bc18Carson City, Nevada$ !Cc17Salt Lake City, Utah% Rc16Boise, Idaho ac15Portland, Ore. jc14Seattle, Wash. %^c13Helena, Mont. H[c12Bismarck, N.D. IOc11Pierre, S.D. cSc10Minneapolis, Minn.# uJc09Milwaukee, Wis.  wDc08Chicago, Ill. }<c07Indianapolis, Ind.# ~5c06Louisville, Ky.  7c05Charleston, W.Va." Fc04Cleveland, Ohio  Ic03Detroit, Mich. Xc02Montpelier, Vt.  Uc01Manchester, N.H.! | -@@@@@@@@@@M68/M6:/M6</M6>/M6@/M6B/M6D/M6F/M6H/M86/ M88/ M8:/ M8</ M8>/ M8@/M8B/M8D/M8F/M8H/M:6/M:8/M::/M:</M:>/M:@/M:B/M:D/M:F/M:H/M<6/M<8/M<:/M<</ M<>/!M<@/"M6/'M>8/(M>:/)(Y]bbbN22]] Y d Y bdY  city1 city2distancebb2:bYPrimaryKeyv1|1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)I@c17c11 R@c17c10 U@c17c09 @U@c17c08 V@c17c07 @X@c17c06 [@c17c05 Z@c17c04 @Y@c17c03 @b@c17c02 a@c17c01 ;@c16c15 ?@c16c14 A@c16c13 O@c16c12 R@c16c11 V@c16c10 @Z@c16c09 Z@c16c08 [@c16c07 \@c16c06 @`@c16c05 _@c16c04 ^@c16c03 @e@c16c02  d@c16c01 $@c15c14 D@c15c13 @T@c15c12 V@c15c11 @Z@c15c10 @_@c15c09 @`@c15c08  a@c15c07 a@c15c06 c@c15c05 b@c15c04 @b@c15c03 g@c15c02 `g@c15c01 A@c14c13 S@c14c12 @U@c14c11 X@c14c10 ^@c14c09 _@c14c08 `@c14c07 a@c14c06 b@c14c05 b@c14c04 a@c14c03  g@c14c02 f@c14c01 D@c13c12 H@c13c11 O@c13c10 U@c13c09 V@c13c08 X@c13c07 Z@c13c06 \@c13c05 [@c13c04 Z@c13c03 b@c13c02  b@c13c01 &@c12c11 :@c12c10 G@c12c09 I@c12c08 N@c12c07 Q@c12c06 @S@c12c05 Q@c12c04 P@c12c03 @]@c12c02 [@c12c01 7@c11c10 D@c11c09 G@c11c08 L@c11c07 O@c11c06 R@c11c05 P@c11c04 O@c11c03 Z@c11c02 Y@c11c01 4@c10c09 8@c10c08 A@c10c07 D@c10c06 I@c10c05 F@c10c04 D@c10c03 @T@c10c02 @T@c10c01 @c09c08 .@c09c07 6@c09c06 ?@c09c05 9@c09c04 4@c09c03 P@c09c02 O@c09c01 $@c08c07 1@c08c06 :@c08c05 4@c08c04 .@c08c03 N@c08c02 M@c08c01 @c07c06 2@c07c05 1@c07c04 0@c07c03 N@c07c02 M@c07c01 1@c06c05 4@c06c04 5@c06c03 O@c06c02 N@c06c01 .@c05c04 5@c05c03 H@c05c02 I@c05c01 "@c04c03 G@c04c02 B@c04c01 F@c03c02 C@c03c01  @c02c01 1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)=@c24c09 <@c24c08 A@c24c07 D@c24c06 J@c24c05 H@c24c04 F@c24c03 @V@c24c02 @U@c24c01 @c23c22 ;@c23c21 K@c23c20 @Q@c23c19 M@c23c18 ;@c23c17 F@c23c16 R@c23c15 @S@c23c14 E@c23c13 B@c23c12 <@c23c11 H@c23c10 M@c23c09 L@c23c08 O@c23c07 @Q@c23c06 U@c23c05 S@c23c04 @R@c23c03 ]@c23c02 \@c23c01 5@c22c21 H@c22c20 Q@c22c19 O@c22c18 >@c22c17 N@c22c16 @S@c22c15 T@c22c14 H@c22c13 E@c22c12 A@c22c11 I@c22c10 N@c22c09 N@c22c08 O@c22c07 Q@c22c06 T@c22c05 T@c22c04 @S@c22c03 ^@c22c02 @]@c22c01 >@c21c20 I@c21c19 Q@c21c18 B@c21c17 M@c21c16 U@c21c15 V@c21c14 @P@c21c13 P@c21c12 L@c21c11 @S@c21c10 U@c21c09 @S@c21c08 S@c21c07 T@c21c06 W@c21c05 X@c21c04 W@c21c03 `a@c21c02  a@c21c01 6@c20c19 F@c20c18 E@c20c17 O@c20c16 T@c20c15 @W@c20c14 Q@c20c13 @X@c20c12 U@c20c11 Z@c20c10 [@c20c09 @Z@c20c08 Z@c20c07 Z@c20c06 _@c20c05 ^@c20c04 ^@c20c03 d@c20c02 d@c20c01 :@c19c18 E@c19c17 M@c19c16 M@c19c15 @Q@c19c14 R@c19c13 @Y@c19c12 @W@c19c11 ]@c19c10 `@c19c09 _@c19c08 _@c19c07 @`@c19c06 a@c19c05 a@c19c04 a@c19c03 @g@c19c02  g@c19c01 ?@c18c17 :@c18c16 A@c18c15 G@c18c14 K@c18c13 U@c18c12 T@c18c11 Z@c18c10 ]@c18c09 @]@c18c08 ^@c18c07  `@c18c06 a@c18c05 @a@c18c04 `@c18c03 @f@c18c02 e@c18c01 5@c17c16 H@c17c15 J@c17c14 =@c17c13 M@c17c12 1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)_@c29c15 @`@c29c14 X@c29c13 Q@c29c12 M@c29c11 L@c29c10 N@c29c09 L@c29c08 J@c29c07 I@c29c06 P@c29c05 Q@c29c04 @Q@c29c03 @\@c29c02 [@c29c01 4@c28c27 5@c28c26 @@c28c25 <@c28c24 E@c28c23 B@c28c22 ?@c28c21 M@c28c20 S@c28c19 X@c28c18 P@c28c17 V@c28c16 \@c28c15 ]@c28c14 @U@c28c13 M@c28c12 G@c28c11 H@c28c10 K@c28c09 H@c28c08 G@c28c07 G@c28c06 P@c28c05 O@c28c04 O@c28c03 Z@c28c02 @Z@c28c01 @c27c26 .@c27c25 "@c27c24 B@c27c23 @@c27c22 F@c27c21 R@c27c20 V@c27c19 @X@c27c18 O@c27c17 T@c27c16 [@c27c15 \@c27c14 @S@c27c13 F@c27c12 A@c27c11 >@c27c10 B@c27c09 @@c27c08 @@c27c07 A@c27c06 H@c27c05 I@c27c04 H@c27c03 @W@c27c02 V@c27c01 &@c26c25 (@c26c24 C@c26c23 B@c26c22 G@c26c21 R@c26c20 W@c26c19 X@c26c18 P@c26c17 U@c26c16 \@c26c15 ]@c26c14 S@c26c13 G@c26c12 B@c26c11 ;@c26c10 @@c26c09 =@c26c08 <@c26c07 >@c26c06 G@c26c05 G@c26c04 F@c26c03 @V@c26c02 U@c26c01  @c25c24 B@c25c23 D@c25c22 N@c25c21 U@c25c20 Z@c25c19 X@c25c18 P@c25c17 U@c25c16 [@c25c15 \@c25c14 @S@c25c13 D@c25c12 =@c25c11 ,@c25c10 5@c25c09 3@c25c08 ;@c25c07 A@c25c06 G@c25c05 D@c25c04 B@c25c03 T@c25c02 @S@c25c01 =@c24c23 @@c24c22 K@c24c21 @T@c24c20 X@c24c19 V@c24c18 L@c24c17 R@c24c16 Y@c24c15 @Z@c24c14 @Q@c24c13 A@c24c12 7@c24c11 6@c24c10 1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)D@c33c28 J@c33c27 H@c33c26 M@c33c25 O@c33c24 T@c33c23 S@c33c22 P@c33c21 V@c33c20 @\@c33c19 `@c33c18 Z@c33c17 `@c33c16 `c@c33c15 d@c33c14 _@c33c13 @X@c33c12 U@c33c11 R@c33c10 N@c33c09 L@c33c08 H@c33c07 E@c33c06 L@c33c05 O@c33c04 P@c33c03 @X@c33c02 W@c33c01 (@c32c31 .@c32c30 8@c32c29 A@c32c28 F@c32c27 C@c32c26 H@c32c25 J@c32c24 S@c32c23 Q@c32c22 O@c32c21 U@c32c20 @[@c32c19 ^@c32c18 Y@c32c17 ^@c32c16 b@c32c15 `c@c32c14 ^@c32c13 U@c32c12 S@c32c11 O@c32c10 H@c32c09 F@c32c08 C@c32c07 A@c32c06 I@c32c05 K@c32c04 K@c32c03 V@c32c02 @V@c32c01  @c31c30 <@c31c29 <@c31c28 ?@c31c27 ;@c31c26 B@c31c25 C@c31c24 P@c31c23 P@c31c22 N@c31c21 V@c31c20 [@c31c19 _@c31c18 @W@c31c17 \@c31c16 a@c31c15 a@c31c14 Z@c31c13 R@c31c12 O@c31c11 I@c31c10 B@c31c09 @@c31c08 :@c31c07 6@c31c06 C@c31c05 E@c31c04 E@c31c03 @U@c31c02 T@c31c01 4@c30c29 4@c30c28 <@c30c27 8@c30c26 A@c30c25 B@c30c24 O@c30c23 N@c30c22 J@c30c21 @T@c30c20 X@c30c19 \@c30c18 V@c30c17 @[@c30c16 a@c30c15 a@c30c14 Y@c30c13 Q@c30c12 N@c30c11 H@c30c10 E@c30c09 C@c30c08 A@c30c07 >@c30c06 G@c30c05 I@c30c04 I@c30c03 W@c30c02 V@c30c01 (@c29c28 >@c29c27 =@c29c26 E@c29c25 C@c29c24 J@c29c23 G@c29c22 C@c29c21 O@c29c20 @U@c29c19 X@c29c18 R@c29c17 X@c29c16 1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)@P@c37c25 Q@c37c24 X@c37c23 @X@c37c22 @^@c37c21 _@c37c20 `b@c37c19 c@c37c18 _@c37c17 b@c37c16 e@c37c15 e@c37c14 a@c37c13 X@c37c12 @W@c37c11 Q@c37c10 J@c37c09 G@c37c08 B@c37c07 >@c37c06 9@c37c05 D@c37c04 G@c37c03 M@c37c02 L@c37c01 2@c36c35 9@c36c34 @@c36c33 B@c36c32 D@c36c31 H@c36c30 N@c36c29 Q@c36c28 Q@c36c27 P@c36c26 Q@c36c25 S@c36c24 Z@c36c23 @Z@c36c22 X@c36c21 ^@c36c20 @b@c36c19 c@c36c18 `@c36c17 `c@c36c16 `f@c36c15  g@c36c14 `b@c36c13 [@c36c12 Y@c36c11 T@c36c10 P@c36c09 N@c36c08 I@c36c07 F@c36c06 E@c36c05 N@c36c04 N@c36c03 S@c36c02 R@c36c01 "@c35c34 >@c35c33 8@c35c32 8@c35c31 @@c35c30 H@c35c29 J@c35c28 I@c35c27 G@c35c26 J@c35c25 M@c35c24 U@c35c23 U@c35c22 @U@c35c21 [@c35c20 `@c35c19 @b@c35c18 \@c35c17 `@c35c16 d@c35c15 d@c35c14 @`@c35c13 V@c35c12 T@c35c11 P@c35c10 G@c35c09 D@c35c08 @@c35c07 9@c35c06 ?@c35c05 D@c35c04 E@c35c03 @Q@c35c02 P@c35c01 5@c34c33 ,@c34c32 ,@c34c31 7@c34c30 C@c34c29 E@c34c28 G@c34c27 E@c34c26 I@c34c25 K@c34c24 @T@c34c23 S@c34c22 R@c34c21 @Y@c34c20 _@c34c19 a@c34c18 [@c34c17 _@c34c16 `c@c34c15 c@c34c14 @^@c34c13 @V@c34c12 S@c34c11 O@c34c10 F@c34c09 C@c34c08 >@c34c07 7@c34c06 A@c34c05 E@c34c04 F@c34c03 @T@c34c02 R@c34c01 &@c33c32 7@c33c31 9@c33c30 =@c33c29 1oR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/dG* |_B%wZ= rU8mP3hK.cF)L@c41c06 G@c41c05 B@c41c04 D@c41c03 &@c41c02 @c41c01 @c40c39 .@c40c38 ;@c40c37 F@c40c36 C@c40c35 F@c40c34 P@c40c33 M@c40c32 J@c40c31 O@c40c30 T@c40c29 S@c40c28 P@c40c27 O@c40c26 N@c40c25 P@c40c24 @X@c40c23 W@c40c22 @\@c40c21 `a@c40c20 c@c40c19 c@c40c18 @_@c40c17 b@c40c16 `e@c40c15 d@c40c14 @]@c40c13 V@c40c12 U@c40c11 @P@c40c10 F@c40c09 D@c40c08 @@c40c07 A@c40c06 2@c40c05 5@c40c04 >@c40c03 @@c40c02 =@c40c01 "@c39c38 5@c39c37 C@c39c36 @@c39c35 D@c39c34 O@c39c33 L@c39c32 I@c39c31 M@c39c30 S@c39c29 U@c39c28 Q@c39c27 @P@c39c26 @P@c39c25 Q@c39c24 @Y@c39c23 Y@c39c22 ]@c39c21 `a@c39c20 `d@c39c19  d@c39c18  `@c39c17 b@c39c16 f@c39c15 `e@c39c14 `@c39c13 @X@c39c12 @W@c39c11 Q@c39c10 I@c39c09 G@c39c08 B@c39c07 A@c39c06 2@c39c05 :@c39c04 A@c39c03 B@c39c02 A@c39c01 (@c38c37 =@c38c36 8@c38c35 A@c38c34 K@c38c33 H@c38c32 G@c38c31 K@c38c30 R@c38c29 R@c38c28 @Q@c38c27 P@c38c26 P@c38c25 @R@c38c24 Y@c38c23 Y@c38c22 [@c38c21 `@c38c20 c@c38c19 `d@c38c18 ``@c38c17 b@c38c16 @f@c38c15 f@c38c14  a@c38c13 X@c38c12 X@c38c11 @R@c38c10 J@c38c09 H@c38c08 C@c38c07 A@c38c06 4@c38c05 A@c38c04 D@c38c03 G@c38c02 F@c38c01 1@c37c36 *@c37c35 7@c37c34 E@c37c33 B@c37c32 C@c37c31 G@c37c30 O@c37c29 P@c37c28 O@c37c27 M@c37c26 1KoR5jM0 e H +  } ` C & x [ > !  s V 9  n Q 4  iL/@c42c41 @@c42c40 C@c42c39 H@c42c38 N@c42c37 @S@c42c36 R@c42c35 T@c42c34 X@c42c33 W@c42c32 U@c42c31 @S@c42c30 \@c42c29 Z@c42c28 W@c42c27 V@c42c26 U@c42c25 V@c42c24 ]@c42c23 _@c42c22 a@c42c21 d@c42c20 g@c42c19 f@c42c18 `b@c42c17 d@c42c16 h@c42c15 @g@c42c14 b@c42c13 @\@c42c12 [@c42c11 U@c42c10 P@c42c09 N@c42c08 N@c42c07 P@c42c06 J@c42c05 D@c42c04 K@c42c03 (@c42c02 @c42c01 9@c41c40 @@c41c39 D@c41c38 K@c41c37 Q@c41c36 P@c41c35 Q@c41c34 W@c41c33 U@c41c32 T@c41c31 V@c41c30 [@c41c29 @Y@c41c28 V@c41c27 U@c41c26 S@c41c25 U@c41c24 ]@c41c23 ]@c41c22 `@c41c21  d@c41c20 f@c41c19 f@c41c18 b@c41c17 d@c41c16 g@c41c15 @g@c41c14 `b@c41c13 @[@c41c12 @Z@c41c11 T@c41c10 O@c41c09 M@c41c08 K@c41c07  1>M:>M6@4~;M<<M:66z<M>6M<<8v=M6:36>M6<36@M6836@M6:36@M6<36@M6>3 6BM683 6BM6:3 6BM6<3 6BM6>3 6BM6@36DM6836DM6:36DM6<36DM6>36DM6@36DM6B36FM6836FM6:36FM6<36FM6>36FM6@36FM6B36FM6D36HM6836HM6:36HM6<36HM6>36HM6@3 6HM6B3!6HM6D3"6HM6F3#86M683$86M6:3%86M6<3&86M6>3'86M6@3(86M6B3)86M6D3*86M6F3+86M6H3,88M683-88M6:3.88M6<3/88M6>3088M6@3188M6B3288M6D3388M6F3488M6H3588M86368:M68378:M6:388:M6<398:M6>3:8:M6@3;8:M6B3<8:M6D3=8:M6F3>8:M6H3?8:M863@8:M883A8<M683B8<M6:3C8<M6<3D8<M6>3E8<M6@3F8<M6B3G8<M6D3H8<M6F3I8<M6H3J8<M863K8<M883L8<M8:3M8>M683N8>M6:3O8>M6<3P8>M6>3Q8>M6@3R8>M6B3S8>M6D3T8>M6F3U8>M6H3V8>M863W8>M883X8>M8:3Y8>M8<3Z8@M683[8@M6:3\8@M6<3]8@M6>3^8@M6@3_8@M6B3`8@M6D3a8@M6F3b8@M6H3c8@M863d8@M883e8@M8:3f8@M8<3g8@M8>3h8BM683i8BM6:3j8BM6<3k8BM6>3l8BM6@3m8BM6B3n8BM6D3o8BM6F3p8BM6H3q8BM863r8BM883s8BM8:3t8BM8<3u8BM8>3v8BM8@3w8DM683x8DM6:3y8DM6<3z8DM6>3{8DM6@3|8DM6B3}8DM6D3~8DM6F38DM6H38DM8638DM8838DM8:48DM8<48DM8>48DM8@48DM8B48FM6848FM6:48FM6<48FM6>48FM6@4 8FM6B4 8FM6D4 8FM6F4 8FM6H4 8FM8648FM8848FM8:48FM8<48FM8>48FM8@48FM8B48FM8D48HM6848HM6:48HM6<48HM6>48HM6@48HM6B48HM6D48HM6F48HM6H48HM8648HM884 8HM8:4!8HM8<4"8HM8>4#8HM8@4$8HM8B4%8HM8D4&8HM8F4':6M684(:6M6:4):6M6<4*:6M6>4+:6M6@4,:6M6B4-:6M6D4.:6M6F4/:6M6H40:6M8641:6M8842:6M8:43:6M8<44:6M8>45:6M8@46:6M8B47:6M8D48:6M8F49:6M8H4::8M684;:8M6:4<:8M6<4=:8M6>4>:8M6@4?:8M6B4@:8M6D4A:8M6F4B:8M6H4C:8M864D:8M884E:8M8:4F:8M8<4G:8M8>4H:8M8@4I:8M8B4J:8M8D4K:8M8F4L:8M8H4M:8M:64N::M684O::M6:4P::M6<4Q::M6>4R::M6@4S::M6B4T::M6D4U::M6F4V::M6H4W::M864X::M884Y::M8:4Z::M8<4[::M8>4\::M8@4]::M8B4^::M8D4_::M8F4`::M8H4a::M:64b::M:84c:<M684d:<M6:4e:<M6<4f:<M6>4g:<M6@4h:<M6B4i:<M6D4j:<M6F4k:<M6H4l:<M864m:<M884n:<M8:4o:<M8<4p:<M8>4q:<M8@4r:<M8B4s:<M8D4t:<M8F4u:<M8H4v:<M:64w:<M:84x:<M::4y:>M684z:>M6:4{:>M6<4|:>M6>4}:>M6@4~4^1<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M6:M6836<M6836<M6:36>M6836>M6:36>M6<36@M6836@M6:36@M6<36@M6>3 6BM683 6BM6:3 6BM6<3 6BM6>3 6BM6@36DM6836DM6:36DM6<36DM6>36DM6@36DM6B36FM6836FM6:36FM6<36FM6>36FM6@36FM6B36FM6D36HM6836HM6:36HM6<36HM6>36HM6@3 6HM6B3!6HM6D3"6HM6F3#86M683$86M6:3%86M6<3&86M6>3'86M6@3(86M6B3)86M6D3*86M6F3+86M6H3,88M683-88M6:3.88M6<3/88M6>3088M6@3188M6B3288M6D3388M6F3488M6H3588M86368:M68378:M6:388:M6<398:M6>3:8:M6@3;8:M6B3<8:M6D3=8:M6F3>8:M6H3?8:M863@8:M883A8<M683B8<M6:3C8<M6<3D8<M6>3E8<M6@3F8<M6B3G8<M6D3H8<M6F3I8<M6H3J8<M863K8<M883L8<M8:3M8>M683N8>M6:3O8>M6<3P8>M6>3Q8>M6@3R8>M6B3S8>M6D3T8>M6F3U8>M6H3V8>M863W8>M883X8>M8:3Y8>M8<3Z8@M683[8@M6:3\8@M6<3]8@M6>3^8@M6@3_8@M6B3`8@M6D3a8@M6F3b8@M6H3c8@M863d8@M883e8@M8:3f8@M8<3g8@M8>3h8BM683i8BM6:3j8BM6<3k8BM6>3l8BM6@3m8BM6B3n8BM6D3o8BM6F3p8BM6H3q8BM863r8BM883s8BM8:3t8BM8<3u8BM8>3v8BM8@3w8DM683x8DM6:3y8DM6<3z8DM6>3{8DM6@3|8DM6B3}8DM6D3~8DM6F38DM6H38DM8638DM8838DM8:48DM8<48DM8>48DM8@48DM8B48FM6848FM6:48FM6<48FM6>48FM6@4 8FM6B4 8FM6D4 8FM6F4 8FM6H4 8FM8648FM8848FM8:48FM8<48FM8>48FM8@48FM8B48FM8D48HM6848HM6:48HM6<48HM6>48HM6@48HM6B48HM6D48HM6F48HM6H48HM8648HM884 8HM8:4!8HM8<4"8HM8>4#8HM8@4$8HM8B4%8HM8D4&8HM8F4':6M684(:6M6:4):6M6<4*:6M6>4+:6M6@4,:6M6B4-:6M6D4.:6M6F4/:6M6H40:6M8641:6M8842:6M8:43:6M8<44:6M8>45:6M8@46:6M8B47:6M8D48:6M8F49:6M8H4::8M684;:8M6:4<:8M6<4=:8M6>4>:8M6@4?:8M6B4@:8M6D4A:8M6F4B:8M6H4C:8M864D:8M884E:8M8:4F:8M8<4G:8M8>4H:8M8@4I:8M8B4J:8M8D4K:8M8F4L:8M8H4M:8M:64N::M684O::M6:4P::M6<4Q::M6>4R::M6@4S::M6B4T::M6D4U::M6F4V::M6H4W::M864X::M884Y::M8:4Z::M8<4[::M8>4\::M8@4]::M8B4^::M8D4_::M8F4`::M8H4a::M:64b::M:84c:<M684d:<M6:4e:<M6<4f:<M6>4g:<M6@4h:<M6B4i:<M6D4j:<M6F4k:<M6H4l:<M864m:<M884n:<M8:4o:<M8<4p:<M8>4q:<M8@4r:<M8B4s:<M8D4t:<M8F4u:<M8H4v:<M:64w:<M:84x:<M::4y:>M684z:>M6:4{:>M6<4|:>M6>4}:>M6@4~4^1;=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M:>M6B4:>M6D4:>M6F4:>M6H4:>M865:>M885:>M8:5:>M8<5:>M8>5:>M8@5:>M8B5:>M8D5:>M8F5:>M8H5 :>M:65 :>M:85 :>M::5 :>M:<5 :@M685:@M6:5:@M6<5:@M6>5:@M6@5:@M6B5:@M6D5:@M6F5:@M6H5:@M865:@M885:@M8:5:@M8<5:@M8>5:@M8@5:@M8B5:@M8D5:@M8F5:@M8H5 :@M:65!:@M:85":@M::5#:@M:<5$:@M:>5%:BM685&:BM6:5':BM6<5(:BM6>5):BM6@5*:BM6B5+:BM6D5,:BM6F5-:BM6H5.:BM865/:BM8850:BM8:51:BM8<52:BM8>53:BM8@54:BM8B55:BM8D56:BM8F57:BM8H58:BM:659:BM:85::BM::5;:BM:<5<:BM:>5=:BM:@5>:DM685?:DM6:5@:DM6<5A:DM6>5B:DM6@5C:DM6B5D:DM6D5E:DM6F5F:DM6H5G:DM865H:DM885I:DM8:5J:DM8<5K:DM8>5L:DM8@5M:DM8B5N:DM8D5O:DM8F5P:DM8H5Q:DM:65R:DM:85S:DM::5T:DM:<5U:DM:>5V:DM:@5W:DM:B5X:FM685Y:FM6:5Z:FM6<5[:FM6>5\:FM6@5]:FM6B5^:FM6D5_:FM6F5`:FM6H5a:FM865b:FM885c:FM8:5d:FM8<5e:FM8>5f:FM8@5g:FM8B5h:FM8D5i:FM8F5j:FM8H5k:FM:65l:FM:85m:FM::5n:FM:<5o:FM:>5p:FM:@5q:FM:B5r:FM:D5s:HM685t:HM6:5u:HM6<5v:HM6>5w:HM6@5x:HM6B5y:HM6D5z:HM6F5{:HM6H5|:HM865}:HM885~:HM8:5:HM8<5:HM8>5:HM8@5:HM8B6:HM8D6:HM8F6:HM8H6:HM:66:HM:86:HM::6:HM:<6:HM:>6:HM:@6 :HM:B6 :HM:D6 :HM:F6 <6M686 <6M6:6<6M6<6<6M6>6<6M6@6<6M6B6<6M6D6<6M6F6<6M6H6<6M866<6M886<6M8:6<6M8<6<6M8>6<6M8@6<6M8B6<6M8D6<6M8F6<6M8H6<6M:66 <6M:86!<6M::6"<6M:<6#<6M:>6$<6M:@6%<6M:B6&<6M:D6'<6M:F6(<6M:H6)<8M686*<8M6:6+<8M6<6,<8M6>6-<8M6@6.<8M6B6/<8M6D60<8M6F61<8M6H62<8M8663<8M8864<8M8:65<8M8<66<8M8>67<8M8@68<8M8B69<8M8D6:<8M8F6;<8M8H6<<8M:66=<8M:86><8M::6?<8M:<6@<8M:>6A<8M:@6B<8M:B6C<8M:D6D<8M:F6E<8M:H6F<8M<66G<:M686H<:M6:6I<:M6<6J<:M6>6K<:M6@6L<:M6B6M<:M6D6N<:M6F6O<:M6H6P<:M866Q<:M886R<:M8:6S<:M8<6T<:M8>6U<:M8@6V<:M8B6W<:M8D6X<:M8F6Y<:M8H6Z<:M:66[<:M:86\<:M::6]<:M:<6^<:M:>6_<:M:@6`<:M:B6a<:M:D6b<:M:F6c<:M:H6d<:M<66e<:M<86f<<M686g<<M6:6h<<M6<6i<<M6>6j<<M6@6k<<M6B6l<<M6D6m<<M6F6n<<M6H6o<<M866p<<M886q<<M8:6r<<M8<6s<<M8>6t<<M8@6u<<M8B6v<<M8D6w<<M8F6x<<M8H6y<<M:66z6Z1<>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M<<M:86{<<M::6|<<M:<6}<<M:>6~<<M:@6<<M:B6<<M:D6<<M:F6<<M:H7<<M<67<<M<87<<M<:7<>M687<>M6:7<>M6<7<>M6>7<>M6@7<>M6B7 <>M6D7 <>M6F7 <>M6H7 <>M867 <>M887<>M8:7<>M8<7<>M8>7<>M8@7<>M8B7<>M8D7<>M8F7<>M8H7<>M:67<>M:87<>M::7<>M:<7<>M:>7<>M:@7<>M:B7<>M:D7<>M:F7<>M:H7 <>M<67!<>M<87"<>M<:7#<>M<<7$<@M687%<@M6:7&<@M6<7'<@M6>7(<@M6@7)<@M6B7*<@M6D7+<@M6F7,<@M6H7-<@M867.<@M887/<@M8:70<@M8<71<@M8>72<@M8@73<@M8B74<@M8D75<@M8F76<@M8H77<@M:678<@M:879<@M::7:<@M:<7;<@M:>7<<@M:@7=<@M:B7><@M:D7?<@M:F7@<@M:H7A<@M<67B<@M<87C<@M<:7D<@M<<7E<@M<>7F7J7T7^7h7m7w78888"8,838=8G8Q6M688V>6M6:8W>6M6<8X>6M6>8Y>6M6@8Z>6M6B8[>6M6D8\>6M6F8]>6M6H8^>6M868_>6M888`>6M8:8a>6M8<8b>6M8>8c>6M8@8d>6M8B8e>6M8D8f>6M8F8g>6M8H8h>6M:68i>6M:88j>6M::8k>6M:<8l>6M:>8m>6M:@8n>6M:B8o>6M:D8p>6M:F8q>6M:H8r>6M<68s>6M<88t>6M<:8u>6M<<8v8V1=M>6M<>8wM>6M<@8xM>6M6M6M6M8M688}M>8M6:8~M>8M6<8M>8M6>8M>8M6@8M>8M6B8M>8M6D9M>8M6F9M>8M6H9M>8M869M>8M889M>8M8:9M>8M8<9M>8M8>9M>8M8@9M>8M8B9 M>8M8D9 M>8M8F9 M>8M8H9 M>8M:69 M>8M:89M>8M::9M>8M:<9M>8M:>9M>8M:@9M>8M:B9M>8M:D9M>8M:F9M>8M:H9M>8M<69M>8M<89M>8M<:9M>8M<<9M>8M<>9M>8M<@9M>8M8M8M8M8M>69!M>:M689"M>:M6:9#M>:M6<9$M>:M6>9%M>:M6@9&M>:M6B9'M>:M6D9(M>:M6F9)M>:M6H9*M>:M869+M>:M889,M>:M8:9-M>:M8<9.M>:M8>9/M>:M8@90M>:M8B91M>:M8D92M>:M8F93M>:M8H94M>:M:695M>:M:896M>:M::97M>:M:<98M>:M:>99M>:M:@9:M>:M:B9;M>:M:D9<M>:M:F9=M>:M:H9>M>:M<69?M>:M<89@M>:M<:9AM>:M<<9BM>:M<>9CM>:M<@9DM>:M:M:M:M:M>69IM>:M>89JLVAL  MR2RecordLocksODBCTimeouMR26AccessVersion BuildAppTitleStartUpForm&StartUpShowDBWindow(StartUpShowStatusBarStartUpMenuBar$AllowShortcutMenusAllowFullMenus(AllowBuiltInToolbarsy 08.50  " Form.MainForm      MR2RecordLocksODBCTimeoutMaxRecords FilterOrderByOrderByOnOrientationDefaultViewGUIDFilterOnLoadOrderByOnLoadDescriptionReplicable  <       f ^Return solution as coordinates of lines to drawMR28RecordLocksODBCTimeoutMaxRecords FilterOrderByOrderByOnOrientationDefaultViewGUIDFilterOnLoadOrderByOnLoadAggregateTypeDescriptionReplicable  <       \ TFind min/max coordinates in cities table MR20OrientationOrderByOnNameMapDefaultViewDescription8DisplayViewsOnSharePointSiteTotalsRowFilterOnLoadOrderByOnLoadHideNewFieldColumnWidthColumnOrderColumnHiddenRequiredAllowZeroLengthDisplayControlIMEModeIMESentenceMode$UnicodeCompressionTextAlignAggregateType     UC V N1$=! @@distancesȭ,G$9LC V N1$=city1] 6*OO;KC V N1$=city2?u#?A@ mC V N1$=distance  j bThis table contains the distances between cities.       city1       city from    m      city2       city to    m     MR2OrientationOrderByOnNameMapDefaultViewDescriptionColumnWidthColumnOrderColumnHiddenRequiredAllowZeroLengthDisplayControlIMEModeIMESentenceMode$UnicodeCompressionDecimalPlacesDefaultValue     UC V N1$=! @@distancesȭ,G$9LC V N1$=city1] 6*OO;KC V N1$=city2?u#?A@ mC V N1$=distance  j bThis table contains the distances between cities. city1    city from     m       city2    city to     m      distance   @ 8distance from city1 to city2   0   mY*NAA* Y d Y d city1 city2ACYYPrimaryKeyv1@@LVALhD h a hp  ? h    @   .            .  d  d   cities.code citiescities.namecities.xcities.yX P  8  8 d/*|G@X h  `b  `b  `b . `bcities H  0 8 {G@~sq_fcitiesh   (   0   8   @       `b  `b  `b . `bcities  h   p   x  .             8 8 H X h x                                                              x  H 0  H 0   0   0   z @  P bh P  H  X  h  dP  d   8  ( 0 P    0 cities dh PrimaryKey  v  x     q                                  `  citiesPrimaryKey   x       H 0  @M6:M68~M6<M6:~M6>M6<~M6@M6>~M6BM6@~M6DM6B~M6FM6D~M6HM6F~M86M6H~M88M86~ M8:M88~ M8<M8:~ M8>M8<~ M8@M8>~ M8BM8@~M8DM8B~M8FM8D~M8HM8F~M:6M8H~M:8M:6~M::M:8~M:<M::~M:>M:<~M:@M:>~M:BM:@~M:DM:B~M:FM:D~M:HM:F~M<6M:H~M<8M<6~M<:M<8~M<<M<:~M<>M<<~ M<@M<>~!M6M8M>6~'M>:M68~(M>:M>8~) `&vH P  h J ,  cities   G  GH։{Gdistances###  {G GH։{G {G G b@F ' y2c2.y' o x2c2.x' o y1c1.y' o x1c1.x' o solution!!!  citiesc2!!  citiesc1!!     Gmaxymax(y)- ominymin(y)- omaxxmax(x)- ominxmin(x)- ocities   G, LVAL@ @ʾxxxxxsolutionsolutionqMainFormGraph f^ά άH7  LVALc1.code=solution.city1 and c2.code=solution.city2K[VBAProject `h@^E4AcessVBAData 45:<=>Babc0*e hicjk&D$B@ߖ]d"C '~0 UCalibri8jhhh h`HP LaserJet 2200 Series PSS odXXLetterPRIV0''''\KhCܴN2TypeInfoufPropData 2(bhpFbhVBYYFYGTHKGCGEHBBKJAHTUJIQPI: w !"#%&'()*+,-.G23456789:;<=>?@ABDEFH_JKLMNOPQRSTUVWXYZ\]^zabcdefghijklmnopqrstvx{|}~Modules4`A`h`bhScripts`A`h`A`hVBA`A`hkE4Cmdbars`A`h`A`hPropData/1)-ahpFbhBlob IKTypeInfo[  , y1)-(x 22#Wend'9+Cl"S`kbU ;hi_db.+o& EndciFunC|x7%J`E)If` < y) TxhK[enb< Gx}EⴀCvIf! I $`  3CB0 2CB0 1CB0 0CB0I ($ 0CB0 $`  0CB0rU 1GY <;)D8=Babce giXj#kTu*A@SpjJN + U cities cities Ariald2e12g237hghMS Sans Serifi1ghj1ghk1l23:m4n2o2p5r35zijMS Sans Serif{5`\FormHeader}xKI&8p;hd5U7`<a<b ccode_LabelcodeDetachedLabel AdߋCoz</d5U7` a<b cname_LabelnameDetachedLabel&dGS7d5U7`a<bcx_LabelxDetachedLabelRxD= osZd5U7`a<bcy_LabelyDetachedLabelO/&Ϭ´`h Details-IqpC@Xm7UF`<a<b e codecodecity codeLI(Ny|Om7UF` a<b e knamenamecity nameMF *Em7UF`a<b>ImExSpecspE4pE4DirData1Blob TypeInfoDirData0ZPropData00!_ahpFbhBlob ` w !"#$%&'()*+-.G23456789:;<=>?@ABDEFH_JKLMNOPQRSTUVWXYZ\]^zabcdefghijklmnopqrstvx{|}~jiMSysDbID="{00000000-0000-0000-0000-000000000000}" DocClass=Report_Graph/&H00000000 DocClass=Form_Progress/&H00000000 DocClass=Form_MainForm/&H00000000 Module=GamsUtil HelpFile="" Name="GraphOptimization" HelpContextID="0" Description="Graph Optimization problems using GAMS" VersionCompatible32="393222000" CK[MG="2527VBA `hj4PROJECTwmyPROJECTWHUVBZLXEYESQDKCDDNADNHFZKPD:6DataAccessPages `A`h`A`hDatabases$ `A`h`bh0 `A`hpFbhBlob    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYjiMSysDbID="{00000000-0000-0000-0000-000000000000}" DocClass=Report_Graph/&H00000000 DocClass=Form_Progress/&H00000000 DocClass=Form_MainForm/&H00000000 Module=GamsUtil HelpFile="" Name="GraphOptimization" HelpContextID="0" Description="Graph Optimization problems using GAMS" VersionCompatible32="393222000" CMG="575589F389178D178D13911391" DPB="4547E9D329EE46EE4611BAEF4668E41ACCrU~~~~~~~q a    &Graph Optimization problems using GAMS iy i i( i98 iH i!XCancellpApplicationName lpKeyName lpDefaultlpReturnedStringnSize lpFileName hwndOwnernFolderhTokendwFlagslpszPathlpNamelpBufferlpVal~1\COMMON~1\MICROS~1\E6.DLL#Visual Basic F6726A3ECB2526DC3A49A8E0CC9C490B02C1728451F" GC="6567C933C952CA5ͬf)G` {Detailh InterruptButtonh K[KillButtonh ClearButtonwTextBoxҋB `.E .`M 9.OLB#MicroscitiesdistancesProgressMainForm430-0000-0000-C000-2CA52" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] Report_Graph=44ue nBufferLengthdwMillisecondspidhHandle lpCommandLinesignalkeylpProcessAttributeslpThreadAttributesbInheritHandlesdwCreationFlags lpEnvironmentlpCurrentDiVBA# `h@^E4PROJECTwmyPROJECTWHUVBZLXEYESQDKCDDNADNHFZKPD:>E.winspoolHP LaserJet 2200 Series PSLPT1:`h"PageHeaderSection^;p^Ag`"[Event Procedure] Detailbӿ~?O8?/`h"PageFooterSection:ApOVt!ͬwD>PageHeaderSectionDetailPageFooterSection, 58, 614, 417, Form_Progress=22, 29, 580, 329, Form_MainForm=44, 58, 602, 358, GamsUtil=66, 87, 720, 518, Z mGamsUReport_GraphReport_GraphForm_ProgressForm_Pgram Files (x86)\Co0mmon Ptem\ado\ms @21(Microsoft ActiveX Data Objects 2.1 Library%"3SReport_‹G R@rp@Xr@Z_GF@WHUVBZLXEYESQDKCDDNADNHFZKPD28AHUVEZXEDYSQKKC@DNAHFZK6P@A1ƒq B",-/"(B+B`Form_Sess(GF1m_rg3es@HCUDLMIMGNZKUDTBARMEMMBGNLRM3H,U'LI.G.,T8AjR@EM@ALB3 33MainA5 3M pio#3VBYYFYGTHKGCGEHBBKJAHTUJIQPI+a2Y1F`GT`-K;C`E`BKJ 3H`U I`6PI>I+3Graph_/3 L0GamsUtilGm0UKixIOCDWDHDTXEZMDJTEPZEJCRUYHTD1ImGW1H`TTaKZ@/D`TU`LP`IE`C@0UK`Mk5d!`rogressForm_MainFormForm_MainFormGamsU#J"  ( 0rU  @1 FB5605FA58FE58FE5D035D03" DPB="AEAC020F0E31784E784E87B2794EFEFC0* pHdGraphOptimizatioPn&X . problems using G@AMS@LVraph Otimz onp%oblesus%ng GA@MSO=    5%I* %<9st dole>stdo7 M^*\G{00020430v-C 0046}#2.0#0#C:\Windows\SysWOW64\22.tlb#OLE Autom!EAD@ODB> DDB DE1D10-8DAA006D2EA4D1DProgram Files (x86)\Co0mmon Ptem\ado\ms @21(Microsoft Actirrr` 89!%ttt` < 3CB0 2CB0 1CB0 0CB0I ($ 0CB0 $K[`  0CB0tilGamsUtil 9A%vvv` veX Data Objects 2.1 Library%"3SReport_‹G R@rp@Xr@Z_GF@WHUVBZLXEYESQDKCDDNADNHFZKPD28AHU~1\COMMON~1\MICROS~1\E6.DLL#Visual Basic FAC24957E5D5408CAC77B5A523074A73CFE38DA9FFACDF1" GC="0507A9E4573ͬf)G` {Detailh InterruptButtonh KillButtonh ClearButtonwTextBoxҋB `.E .`M 9.OLB#MicrosTypeInfoufPropData 2(bhpFbhVBYYFYGTHKGCGEHBBKJAHTUJIQPI:qcitiesdistancesProgressMainForm430-0000-0000-C000-A583A583A" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] Report_GrapVEZXEDYSQKKC@DNAHFZK6P@A1ƒY B",-/"(B+B`Form_Sess(GF1m_rg3es@HCUDLMIMGNZKUDTBARMEMMBGNLRM3H,U'LI.G.,T8AjR@EM@ALKB333MXainA5 3M pio#3VBYYFYGTHKGCGEHBBKJAE.winspoolHP LaserJet 2200 Series PSLPT1:`h"PageHeaderSection^;p^Ag`"[Event Procedure] Detailbӿ~?O8?/`h"PageFooterSection:ApOVt!ͬwD>PageHeaderSectionDetailPageFooterSectionh=44, 58, 614, 417, Form_Progress=22, 29, 580, 329, Form_MainForm=44, 58, 602, 358, GamsUtil=66, 87, 720, 518, mGamsUReport_GraphReport_GraphForm_ProgressForm_P-- b d%2 RHCUDLMIMGNZKUDTBARMEMMBGNLRM:7*~0@)%ah4QehBlob 1zTypeInfoCPropData&'3". bhpFbhIOCDWDHDTXEZMDJTEPZEJCRUYHTM:_VBA_PROJECT~ X x ( , & R *X H F GraphhvcO<)   x e R > + = < ) E"ɄQENS Cqԑ@ذ)~qI~*&f,gm8X"/Y~~&;^%]iP`p   \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p  E"ɄQENS Cqԑ@ذ)~qI~*&f,gm8X"/Y~~&;^%]iP`p E"ɄQENS Cqԑ@ذ)~qI~*&f,gm8X"/Y~~&;^%]iP`p E"ɄQENS Cqԑ@ذ)~qI~*&f,gm8X"/Y~~&;^%]iP`p   \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p      \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p      \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p    \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p      \AᄫQ՝!euPqԑ@ذ)~qI~*,܂){fX"/Y~~&;^%]iP`p K[ B D` >  H"rogressForm_MainFormForm_MainFormGamsU"  ( 0 8H `h %l 7l7l7l7 } <c< TcT\ 0 <LTLP`0  qx#qx/O0$  4Parlier) and the correctilGamsUtilnavigated to prior to calling the ReadBLWIYBUZF9HEF2DV JMQ.A4aQ3W&Yr̯52!`#DirData25PropData __SRP_6<#__SRP_7+Blob rTypeInfo)PropData,-dir, 2" NHCUDLMIMGNZKUDTBARMEMMBGNLRM:+*$u0@)%ah4QehBlob 1zTypeInfoC,#o }$k K[     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijlmnop5rstuvwxyz{|}__SRP_2=:__SRP_3N__SRP_49;v__SRP_5o __SRP_0/8b__SRP_1 }$Blob rTypeInfo)PropData,-dir HTUJIQPIa2Y1F`GTU`-K;C`E`BQKJ 3H`U I`6PI>+3/3 L0GamsUtilXGm0U KixIOCDWDHDTXEZMDJTEPZEJCRUYHTD1VImGW1H`TaKZ@/D`T`LP`IE`C@0U`%M52!`#J hReadPipe nBufferSize lpBytesRead$ 3$JotGamsInterruptxMEam  *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}#9.0#0#C:\Program Files (x86)\Microsoft Office\Office12\M K[SACC.OLB#Microsoft Access 12.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation**\G{00000201-0000-0010-8000-00AA006D2EA4}#2.1#0#C:\Program Files (x86)\Common Files\System\ado\msado21.tlb#Microsoft ActiveX Data Objects 2.1 Library LGraph Optimization problems using GAMS5%I38WHUVBZLXEYESQDKCDDNADNHFZKPD014f480654Report_Graph/Y 8HCUDLMIMGNZKUDTBARMEMMBGNLRM024f480654CForm_Progress 8VBYYFYGTHKGCGEHBBKJAHTUJIQPI034f480654gForm_MainForm L08IOCDWDHDTXEZMDJTEPZEJCRUYHTM044f480654GamsUtil5HhH0QaFb0EY$Xr;JrBLŝ_izzc(J f448TTAccess> DirQfVBAWin16~Win32MacVBA6#GraphOptimizationstdole`ADODBs Report_Graph _Evaluate Detail_FormatCCancel FormatCountSz._minHeight|db\ CurrentDbSSQL"rs_ OpenRecordset|x1_x2_y1O_y2P_iscalelioffsetNEOFMoveNextL!Round AddLogLinexoyl Form_Progress+ GamsInterruptpid InterruptTypeqgamsinterrupt.dll3ClearButton_Clickg ClearTextBox SendInterrupt Err_InterruptYgetpidD#rc^ focusTextBoxMsgBoxRErro Description ClearInterruptButton_ClickMKillButton_Clickr Form_MainFormcCitiesButton_ClickErr_CitiesButton_Click stDocNamezstLinkCriteriaYDoCmdƧOpenFormExit_CitiesButton_ClickTDistButton_Click[Err_DistButton_Click8Exit_DistButton_Click֗ Form_Open-EnableRunButton"2FrameValueKFormsprogressuTextBoxQFontU GamsUtilInitQuitButton_Click{Err_QuitButton_Click=Quit9Exit_QuitButton_Click3RunButton_ClickDisableRunButton StatusBarʜvmRunGAMSz RunButtonxEnabled۪ CitiesButtonSSetFocusGamsUtilGetPrivateProfileStringghlpApplicationNamea lpKeyNameJ lpDefault%lpReturnedString7nSize} lpFileName2kernel32_SHGetFolderPathm hwndOwnernFolder.hToken)dwFlags/lpszPath shell32.dll+GetEnvironmentVariable0lpNameRlpBuffer> kernel32.dll]SetEnvironmentVariableHlpValue GetTempPath nBufferLengthSleepdwMillisecondsť AttachConsoleSECURITY_ATTRIBUTESCnLength&lpSecurityDescriptoribInheritHandle% STARTUPINFOcb\ lpReservedP lpDesktoplpTitledwXdwYdwXSizeWdwYSize dwXCountChars^ d K[wYCountCharsdwFillAttribute$g wShowWindow cbReserved2 lpReserved2é hStdInput] hStdOutput hStdError0PROCESS_INFORMATIONhProcess>hThread dwProcessID$ dwThreadIDWaitForSingleObject*hHandle CreateProcess;r lpCommandLine lpProcessAttributes`lpThreadAttributes(bInheritHandlesydwCreationFlagsB lpEnvironmentplpCurrentDirectoryE lpStartupInfolpProcessInformationui CloseHandleYhObject CreatePipeR phReadPipe[ phWritePipe'lpPipeAttributes PeekNamedPipe hReadPipe nBufferSizeL  lpBytesReadKlpTotalBytesAvail"lpBytesLeftThisMessage+GetStartupInfo`%ReadFile[.hFile#nNumberOfBytesToReadlpNumberOfBytesRead= lpOverlappedmNORMAL_PRIORITY_CLASS(INFINITE1FORMAT_MESSAGE_FROM_SYSTEM": FormatMessageslpSourceX dwMessageId dwLanguageId Argumentsj} AllocConsoleA FreeConsoleSetConsoleTitle+sj GetLastErrorGetEnvironmentStringsXGenerateConsoleCtrlEventdtsignalegoupid)TerminateProcessS uExitCodeYSetDllDirectory1STARTF_USESHOWWINDOWSTARTF_USESTDHANDLESQUSW_HIDEx SW_NORMALi process_info GamsSysDiruMdbDirTempDir  GetGamsSysDirWV GetMdbDir GetTempDir ImportDllnQ ExportDLlflnFileOrDirExistswritedllIJ return_code strBuffer 5lenstrPkb MyDocumentsIniFile@GetMyDocumentsDirSpace  vbTextCompare QCSIDL_PERSONALжS_OKoS_FALSE E_INVALIDARGeChrK~Right GetEnv{keyNebuff~SetEnvval Application*CurrentProject$FullNameОInStrRevĈ AddToPath&MsgQTempR IsMissingSysCmdGacSysCmdSetStatushIacSysCmdClearStatus9Y WaitSecondAPIErrorDescription߲ ErrorCode0esAnsxlRetE StripNullxInStringYiNull vbNullCharYTrim@ algorithmFDllNameRetVal;gmsNamev` CloseGraphWriteGAMSModelVisible RunConsolebProcessSolutionRecordsbWriteSchemaIni!WorkDiry_ExecuteY OpenGraph ModelText4 Recordset GetModelTextRaiseexport WriteBLOB ReadBLOB(filenamej objTarget'Mwdir/pa^pra1trasuicmdlineYthReadLIhWriteN;bAvailbReadbStringenvPtr2hPipe vbNullString LastDllError HandleOutputSelStartZPathName'iTemp]hGetAttrNumber- StopSolverQvbCr$vbLfT% OpenReport acViewPreview2Err_close_graphacReport%acSaveNoDTksField Edit+FileSizehLOFcData; AppendChunkUpdate Err_ReadBLOB Err_WriteBLOBj FieldSize"GetChunklCg   Hm Files\Microsoft Office\Office\MSACC9.OLBAccess  )X(<(35hmMGetPrivateProfileStringADSHGetFolderPathAl R0GetEnvironmentVariableAXSetEnvironmentVariableAGetTempPathASleepAttachConsole(WaitForSingleObjectPCreateProcessAt<CloseHandle`CreatePipePeekNamedPipeGetStartupInfoAReadFileHFormatMessageA@AllocConsoled,FreeConsolePSetConsoleTitleApGetLastError GetEnvironmen K[tStringsGenerateConsoleCtrlEvent,TerminateProcessTSetDllDirectoryAxME@ (<<< <"+@ i` Riiiii+@0 i`iiii+ X i@i`i+ irectory lpStartupInfolpProcessInformationhObject phReadPipe phWritePipelpPipeAttributes hReadPipe nBufferSize lpBytesReadlpTotalBytesAvaillpBytesLeftThisMessagehFilenNumberOfBytesToReadlpNumberOfBytesRead lpOverlappedlpSource dwMessageId dwLanguageId ArgumentssgoupidhProcess uExitCodevalDirMsgN Erroi+@ i`i i+ % iF`````rCodeInString algorithmWorkDirflnexportfilename objTargetwdirPathNameTsField &a%h InterruptType;615C4E9-8DA9-4729-0* pHdGraphOptimizatioPn&X . problems using G@AMS@LVraph Otimz onp%oblesus%ng GA@MSO=    5%I* K*mrU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~U Q #FF1^䅸o  a 9(a&a''' (A   1 Q  A  $6 y!ayA yaY1 1 Q q !9!Y!y!!!!")"a"""""#9#Q#y####1Qii Report_Graph Form_Progress Form_ K[MainFormGamsUtilGraphOptimizationFFC:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLLVBA  A`J_N?:C:\Program Files (x86)\Microsoft Office\Office12\MSACC.OLBAccess  Qp0FLabel8C:\Windows\SysWOW64\stdole2.tlbstdole  Qm.:C:\Program Files (x86)\Common Files\System\ado\msado21.tlbADODB i_I<)Hjx{mNoEsQ <֍]FWkzI?j@tRp.ђC{HqFrame00[xB(GForm{Rp.ђC{HqDetailkRp.ђC{Hq DistButton QuitButton;|?Label5Label7Label9hRp.ђC{Hq mstoption RunButton tspoption CitiesButtonCitiesButton_ClickDistButton_Click Form_OpenQuitButton_ClickRunButton_ClickEnableRunButtonDisableRunButton p Progressɤs h)aN?Y `GXGPV;|```````````````` ` ```+`  i@i+< iiii i @i"`i$i&)(%)*%+,P 0 ` i.+0  i2 i4 )6 %i+8 X  i:x i i< i> i@ iB D X )(x %+F  iH i iJ iL@ iN@PL@RL`TC+V  i iX( iZH i\h i i i^+`, +bHP +dp if+h +j( +K[lh inip+r( i ites+vPh@ ifst@xLnd@zL;C@|L.;@~L F \M%`e\`C:`il    `n @`gr+,`bi`\P`me`ud`;C`Fi+!`3.`ns`fm @Lon@Lro@Ld\@Lve+8inG@Lro`\C`Vs\ 8i (ies`V\T+@Lkt`Pr`Vs +`f\P+X i~sy`fWi i n;` F hH i;C+iRO`Gr`\t+p8iam`6) ico`? Consolas progress(aN?TextBoxFontName  DD GetPrivateProfileString kernel32 GetPrivateProfileStringA  SHGetFolderPath shell32.dll SHGetFolderPathA  GetEnvironmentVariable kernel32.dll GetEnvironmentVariableA  \W` te`sP Xi\p`\m  $ira`  ms`$OG `iILio_`\o &;C %+SetEnvironmentVariable SetEnvironmentVariableA  GetTempPath GetTempPathA   Sleep Sleep  @ AttachConsole AttachConsole  Q`WaitForSingleObject WaitForSingleObject  ! CreateProcess WriteBLOB CreateProcessA  K[ CloseHandle CloseHandle   CreatePipe CreatePipe   PeekNamedPipe PeekNamedPipe  IGetStartupInfo GetStartupInfoA   ReadFile ReadFile  @ FormatMessage FormatMessageA  ` AllocConsole AllocConsole  q FreeConsole FreeConsole  1SetConsoleTitle SetConsoleTitleA   GetLastError GetLastErrorReadBLOB  GetEnvironmentStrings GetEnvironmentStrings  GenerateConsoleCtrlEvent GenerateConsoleCtrlEvent   TerminateProcess TerminateProcess  @SetDllDirectory SetDllDirectoryA a` GamsUtilInit ImportDll ExportDLl GetGamsSysDirGetMyDocumentsDirGetEnvSetEnv GetTempDir GetMdbDir AddToPath StatusBar WaitSecondAPIErrorDescription StripNullRunGAMSWriteSchemaIniProcessSolutionRecordsWriteGAMSModel GetModelTextwritedll RunConsoleFileOrDirExists StopSolvergetpid focusTextBox ClearTextBox AddLogLine OpenGraph CloseGraph  Y areFE0A4Fdbf)G` {;ևJPa2InterruptButton KillButton ClearButtonҋB `TextBoxp W* ActiveX Controls in Access % % GamsInterrupt gamsinterrupt.dll GamsInterrupt &&ClearButton_Click SendInterruptInterruptButton_ClickKillButton_Click TP;|? &gamsdir\gamside.ini EXECUTE EXECUTABLE *NOT FOUND* RGetPrivateProfileString: Buffer too small  gams.exe gamside.ini Buffer too smallVBE6.DLL 1+ 8 1+S X 1+i x \ 1+`  1+k qy>`}A 1+  upload.dll .Uploading to database: fĤIx8< 1+C  1+  "gamsinterrupt.dll Tselect blob from largetext where key='dll'OpenRecordsetEOF 2DLL not found in database blob CloseFieldSizeGetChunk s &Error exporting dll  1+ 8qcSysCmdSetStatushIacSysCmdClearStatus9Y (WaitSecondAPIErrorDescription߲ ErrorCode0esAnsxlRetE StripNullxInStringYiNull vbNullCharYTrim@(RunGAMSz algorithmFDllNameRetVal;ekxxx coordinate0N ާ;=nkm7UF`a<bekyyy coordinate\9!x;I2l\<`FormFooterQfGBPJ ߌͬ  yLYzXϙFormHeaderd code_Labeld name_Labeld x_Labeld y_LabelDetailmcodemnamemxm yK[ FormFooter%<9st dole>stdo7 M^*\G{00020430v-C 0046}#2.0#0#C:\Windows\SysWOW64\22.tlb#OLE Autom!E8=Babce giXj%kE0A@j~ZOFK*L%W Udistancesdistances Ariald2e12g237hghMS Sans Serifi1ghj1ghk1l23:m4n2o2p5r35zijMS Sans Serif{5`\FormHeader-~LV?Id5U7`<a<b ccity1_Label city1tance8distance from city1 to city2`YhԡEb&[c`FormFooter*WB*^Rͬ #lNw@{I_&%T FormHeaderd city1_Labeld city2_Labeld distance_LabelDetailmcity1mcity2mdistanceFormFooterAD@ODB> DDB DE1D10-8DAA006D2EA4D1DProam  (*\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}#9.0#0#C:\Program Files (x86)\Microsoft Office\Office12\MSACC.OLB#Microsoft Access 12.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation**\G{00000201-0000-0010-8000-00AA006D2EA4}#2.1#0#C:\Program Files (x86)\Common Files\System\ado\msado21.tlb#Microsoft ActiveX Data Objects 2.1 Library LGraph Optimization problems using GAMS5%I38WHUVBZLXEYESQDKCDDNADNHFZKPD014f480654Report_Graph/q 8HCUDLMIMGNZKUDTBARMEMMBGNLRM094f48065cCForm_Progress 8VBYYFYGTHKGCGEHBBKJAHTUJIQPI074f48065bgForm_MainForm LH0_8IOCDWDHDTXEZMDJTEPZEJCRUYHTM084f48065cGamsUtil5HkhH0QaFb0EY$Xr;JrBLŝ_izzc(J f4JNW Access> DirQf VBAWin16~Win32MacVBA6# GraphOptimizationstdole`ADODBs Report_Graph _Evaluate Detail_FormatCCancel FormatCountSz._minHeight|db\ CurrentDbSSQL"rs_ OpenK[Recordset|x1_x2_y1O_y2P_iscalelioffsetNEOFMoveNextL!Round (AddLogLinexoyl Form_Progress+ GamsInterruptpid InterruptTypeqgamsinterrupt.dll3ClearButton_Clickg (ClearTextBox SendInterrupt Err_InterruptY(getpidD#rc^ (focusTextBoxMsgBoxRErro Description ClearInterruptButton_ClickMKillButton_Clickr Form_MainFormcCitiesButton_ClickErr_CitiesButton_Click stDocNamezstLinkCriteriaYDoCmdƧOpenFormExit_CitiesButton_ClickTDistButton_Click[Err_DistButton_Click8Exit_DistButton_Click֗ Form_Open-EnableRunButton"2FrameValueKFormsprogressuTextBoxQFontU (GamsUtilInitQuitButton_Click{Err_QuitButton_Click=Quit9Exit_QuitButton_Click3RunButton_ClickDisableRunButton (StatusBarʜvm(RunGAMSz RunButtonxEnabled۪ CitiesButtonSSetFocus GamsUtilGetPrivateProfileStringghlpApplicationNamea lpKeyNameJ lpDefault%lpReturnedString7nSize} lpFileName2kernel32_SHGetFolderPathm hwndOwnernFolder.hToken)dwFlags/lpszPath shell32.dll+GetEnvironmentVariable0lpNameRlpBuffer> kernel32.dll]SetEnvironmentVariableHlpValue GetTempPath nBufferLengthSleepdwMillisecondsť AttachConsoleSECURITY_ATTRIBUTESCnLength&lpSecurityDescriptoribInheritHandle% STARTUPINFOcb\ lpReservedP lpDesktoplpTitledwXdwYdwXSizeWdwYSize dwXCountChars^ dwYCountCharsdwFillAttribute$g wShowWindow cbReserved2 lpReserved2é hStdInput] hStdOutput hStdError0PROCESS_INFORMATIONhProcess>hThread dwProcessID$ dwThreadIDWaitForSingleObject*hHandle CreateProcess;r lpCommandLine lpProcessAttributes`lpThreadAttributes(bInheritHandlesydwCreationFlagsB lpEnvironmentplpCurrentDirectoryE lpStartupInfolpProcessInformationui CloseHandleYhObject CreatePipeR phReadPipe[ phWritePipe'lpPipeAttributes PeekNamedPipe hReadPipe nBufferSizeL  lpBytesReadKlpTotalBytesAvail"lpBytesLeftThisMessage+GetStartupInfo`%ReadFile[.hFile#nNumberOfBytesToReadlpNumberOfBytesRead= lpOverlappedmNORMAL_PRIORITY_CLASS(INFINITE1FORMAT_MESSAGE_FROM_SYSTEM": FormatMessageslpSourceX dwMessageId dwLanguageId Argumentsj} AllocConsoleA FreeConsoleSetConsoleTitle+sj GetLastErrorGetEnvironmentStringsXGenerateConsoleCtrlEventdtsignalegoupid)(TerminateProcessS uExitCodeY(SetDllDirectory1STARTF_USESHOWWINDOWSTARTF_USESTDHANDLESQUSW_HIDEx SW_NORMALi process_info GamsSysDiruMdbDirTempDir  (GetGamsSysDirWV (GetMdbDir (GetTempDir (ImportDllnQ (ExportDLlfln(FileOrDirExists(writedllIJ return_code strBuffer 5lenstrPkb MyDocumentsIniFile@(GetMyDocumentsDirSpace  vbTextCompare QCSIDL_PERSONALжS_OKoS_FALSE E_INVALIDARGeChrK~Right (GetEnv{keyNebuff~(SetEnvval Application*CurrentProject$FullNameОInStrRevĈ (AddToPath&MsgQTempR IsMissingSysCmdGacSysCmdSetStatushIacSysCmdClearStatus9Y (WaitSecondAPIErrorDescription߲ ErrorCode0esAnsxlRetE StripNullxInStringYiNull vbNullCharYTrim@ algorithmFDllNameRetVal;gmsNamev` (CloseGraph(WriteGAMSModelVisible (RunCoK[nsolebProcessSolutionRecordsbWriteSchemaIni!WorkDiry_ExecuteY (OpenGraph ModelText4 Recordset (GetModelTextRaiseexport (WriteBLOB (ReadBLOB(filenamej objTarget'Mwdir/pa^pra1trasuicmdlineYthReadLIhWriteN;bAvailbReadbStringenvPtr2hPipe vbNullString LastDllError HandleOutputSelStartZPathName'iTemp]hGetAttrNumber- (StopSolverQvbCr$vbLfT% OpenReport acViewPreview2Err_close_graphacReport%acSaveNoDTksField Edit+FileSizehLOFcData; AppendChunkUpdate Err_ReadBLOB Err_WriteBLOBj FieldSize"GetChunkFormDetail2 DistButtoniP QuitButton'QLabel5,Label7,Label8,Label9,Labela mstoptionmstlabel tspoptiontsplabel+nClickItemzInterruptButtonp KillButtonf0 ClearButtone _B_var_Space _B_var_LeftQ _B_var_Chr\; _B_var_Right9lCg   HA@@H I &gamsdir\gamside.inip1I<)0pi0AXp  1,Ip), pA (pi(yp,Qpi`9<p( 9i9""44(`pq<p1((4@qp 9Y"(((,9p4< p A("Dpi 1"($,p$QPp(!pp$ p$p,p ,p!A(@p$`$`$`$`$!`(I`0,q`a00$`$`( `q0( `(9 `&(a `(( `(`&(` 0(` 0,)` &0(Q`&,y` ) 0#0` A a  0/0(B `.E .`M 9.OL` 0$ ` 0238=Babe ghIijikZ6+g Salesman TourT$]XE8|! ͬK[֍]FWkzDetailh CitiesButtonh DistButtonh RunButtonh QuitButtond Label5d Label7d Label8d Label9k Framed Labeli mstoptiond mstlabeli tspoptiond tsplabelDetailQ9M$1`$Y`$`(`0$`$`0!`    0/00I`   /00 ) I i n@rU p$` $A` (` y&$`  "i;C`  EX`& ev`$pt `"ii `  `& `$` pSii i`F 0% P% p% %`"`$`&`(`*`,`.`0`V+ i:`< B@`V+T X  N  <` @ if    #+! !Di@!----iR `!iT----`rati`X \!icro/default!+("*iR H" hiTh"raryi-us/`Xll/r`hget \" i h"6! & R X x ( , & R X` :h pH, 8H$ pHH p`H H (  H (  0 8 @ HP X ` h p x                     H( H<K["8 H` Hp H ( H    H, HH H( H8 H@ H H H P H X  ` p     Z  Z x D  D"@ H X h x D  D"@ H P h (x    D  D "` h  p      Z ( BH R L 8 "@ Zh B       6  8 H X  h "x @   4  0 8@H X x  ( <@0 p  Z &` ZB  &0:P(  (  0 H X `hpx Z  Z B  "  Z(  Z" *H ZP  ZB0 8HP`h Z 2( Z`B Z "h ZB   8 Z@  Z"   b(   Z p Z"  Z 4p ,  .  $ Z@B  .   Z 8p 8 ZB @HP`px    Z @ ZX "       " $ ! H! 6h!.!  (! ! " "  @" P" ZX" :" Z"" X#`#h###"##"#* $*P$ $$ Z$ &$ Z %" %  %  %$%%%  %K[  0&0& 8&  TH& L& && '(' n8' ''  '' ' ' Z' (P( Zx(" ( (( ( ) )() 8) H) DP) $) D)B * ** * 0(* X* Bh**<*+<+H+ P+ &h++++$++  +, ,,  , D(, p, D," ,,,, 0, -  B(-2p- - &--(- . (.0.8.X.`..  .. .. . D. </ DH/" / / ////// /040,@0p0 0 0 00 0 0 00 01 01 @1 P1 `1p1 1 >1 1 1 22(2 `2p222 02  2&23 3 (3 @3 `3 ,h3 33 333 3  34 4 40484 H4X4 `4h4 Dp4 4 D4B  5 @(5 4h5 :5 .5 :6 .P6 @6 B6 7  27H7P7  :`7 777777  778 D8 2P8 D8"8888 D9 &H9 "p9 D9B9 99 D: 6H: ,: D:": 4; $8;`;p;; D; &; D<"H<P<h< Dp< 8< D<" 8=2@=x= D= (= D="8>@>X> D`> (> D>"? ?(?  H?P? X? D`? ? ? ? F? $(@ P@ X@ Fp@ F@ JA @PA A A @A (A 8B HPB B B 8B B B 0C 00C D`CBC  "C C  (C D8D@DHD "XDDD DDDD (D .DE E8E 0PE E EEK[E EE EE E DE 8F XF `F HpF $F F F FG FHG BG HG  H (H J@H FH 4H @I &PI xI I >I I I 0I 0J DHJBJ  J   "JJJ .J  K0K8K@K ,HKxKKKK "KK *KLL 0L  @L`LhLpL xLL LL L LK--------------------------------------------------------------------------- Run GAMS from Access! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group erwin@amsterdamoptimization.comK---------------------------------------------------------------------------4------------- win 32 api declarations --------------j http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getprivateprofilestring.asp     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderpath.asp    i http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getenvironmentvariable.asp  i http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setenvironmentvariable.asp   get temp path  sleep@^X^p^p^^^^^^0^H^`^x^^^^^^^ ^8^Pph^^^^p    % / 3 `Hp   P         ]D ` ]Dx ]D    &    H((]]]]T ----------------------------------------------------------------------------------- global variablesT -----------------------------------------------------------------------------------]]] ]8>-------------------------------------------------------------- initialize>--------------------------------------------------------------P ($' R$'$'AAo`>-------------------------------------------------------------- ImportDll>--------------------------------------------------------------]  upload.dll' $Uploading to database: A@Z AkHo@>-------------------------------------------------------------- ExportDll>--------------------------------------------------------------`]( gamsinterrupt.dll' $ AkHo@T------------------------------------------------------------------------------------! Return the GAMS System directory; Includes trailing '\' so you can append filename directly.L This version will both work with gams 2.20 (ini file in user's my documentsEK[ directory) and with earlier systems (ini file in Windows directory). Erwin Kalvelagen, Aug 2005T------------------------------------------------------------------------------------@]]]]]]/-------- GAMS 2.20 and up: look in My Documents$'  $' ' gamsdir\gamside.ini'EXECUTE EXECUTABLE *NOT FOUND*   $'   )GetPrivateProfileString: Buffer too smallA@Z'zk  gams.exe '   $'zhk`kX"--------- Try GAMS 21.7 and before$' ' gamside.ini'! will search in windows directoryEXECUTE EXECUTABLE *NOT FOUND*   $'   Buffer too smallA@Z'zHk@ gams.exe '   $'iT------------------------------------------------------------------------------------ Return 'My Documents' directoryT------------------------------------------------------------------------------------]P]h]]# search My Documents]# Success]#( The Folder is valid, but does not exist]W# Invalid CSIDL Value$'  $'  KT  $ $'f f f$\ f\'fk f'k KT' KT'nh i` T------------------------------------------------------------------------------------ get environment variableT------------------------------------------------------------------------------------]X]p $'] $  $'V V'd  V$'k i T------------------------------------------------------------------------------------ set environment variableT------------------------------------------------------------------------------------]  $ $$'Vo T------------------------------------------------------------------------------------ return temp directoryT------------------------------------------------------------------------------------8]x] $']  $'V V'd`  V$'k@ i8 T------------------------------------------------------------------------------------+ return directory where MDB file is sittingT------------------------------------------------------------------------------------] !!'f f f\$$'iT------------------------------------------------------------------------------------ Add directory to the PATH.T------------------------------------------------------------------------------------]x ~;PATH$'fPATH fAiT------------------------------------------------------------------------------------ handle status barT------------------------------------------------------------------------------------][ if the Msg variable is omitted or is empty, return the control of the status bar to Access $   $'d0 $'kd $'koT------------------------------------------------------------------------------------ sleep for n seK[condsT------------------------------------------------------------------------------------ AoT------------------------------------------------------------------------------------.PURPOSE: Returns Human Readable Description of&Error Code that occurs in API function(PARAMETERS: ErrorCode: System Error CodeReturns: Description of ErrorT------------------------------------------------------------------------------------h]]$' T  $V' $'iT------------------------------------------------------------------------------------1Input: String containing null terminator (Chr(0))1Returns: all character before the null terminatorT------------------------------------------------------------------------------------]X   ' KT $'KT'SX $  $ 'n0k(i T------------------------------------------------------------------------------------ Run GAMS modelT------------------------------------------------------------------------------------p]]]A model.gms'Work directory : A<System directory : A<Mdb directory : A< A& needed to find gdxio.dll and gams.exe A needed to find interrupt.dll!MsgBox "Path = " & GetEnv("PATH")   A "(  "! A AoT------------------------------------------------------------------------------------3 write schema.ini for reading the solution csv fileT------------------------------------------------------------------------------------]x  schema.ini' [solution.csv]ColNameHeader=FalseDecimalSymbol=.Format=Delimited(,)Col1 = "City1" Text Width 50Col2 = "City2" Text Width 50VohT------------------------------------------------------------------------------------ process csv file with solutionT------------------------------------------------------------------------------------A<  solution.csv$No solution file availableA<|k A*Open connection to current Access database]$". M this does not work as advertised. See http://support.microsoft.com/kb/241477FDoCmd.TransferText acImportDelim, "schema.ini", "solution", fln, False]DELETE * FROM solution'$ $A< $ B@GINSERT INTO solution SELECT * FROM [Text;FMT=Delimited;HDR=No;DATABASE= ;].[solution#csv];'$ $A< $ B@ B@B. AoT------------------------------------------------------------------------------------! write model stored in db to fileT------------------------------------------------------------------------------------ ]] $ 'MsgBox ModelText  Vo>-------------------------------------------------------------- get model file from database>--------------------------------------------------------------]8]P]h*Open connection to current Access database$". ;Create SQL statement to retrieve value from key/value table 4select largetext from largetext where key='mstmodel''$d4select largetext K[from largetext where key='tspmodel''$k $ %(.&Retrieve value if data is found &!6 largetext$&' d@Model source not found \B@ k &B@B.& B@B. i>-------------------------------------------------------------- write DLL>--------------------------------------------------------------]]]0*Open connection to current Access database$". ;Create SQL statement to retrieve value from key/value table*select blob from largetext where key='dll''$ $ %(.&Retrieve value if data is found &!6DLL not found in database \B@ k]H  &blob $'d  &blob$'kx &B@B.& B@B. o@>--------------------------------------------------------------6 run gams with IO redirection to a textbox (objTarget)>--------------------------------------------------------------` !G|j]]]8]X]x]] stdout + stderr]]% pipe bytes available (PeekNamedPipe)] pipe bytes fetched (ReadFile)] our buffer  ( (  (  (]($j'.]@]X $ & $0'V $G|j  ( AD & ( & ( x z ( | (gams  LO=3 --db=" !!"'"Command line : "A<A<cmdline = "CMD /C PATH" 2 "   .   $ 'F F \!4$A@Z|p kh *MsgBox "pid = " & process_info.dwProcessIDCall DisableRunButton $ ($8bA@ ( ($\', $ , ( *A@F6 &A@, this turns the pipe aroundk` X $A@, !A@, ! A@, (Call EnableRunButton| 6 *Gj 5d ,9d5d98q o >-------------------------------------------------------------- check if file/dir exists>--------------------------------------------------------------p:Macro Purpose: Function returns TRUE if the specified file. or folder exists, false if not.4PathName : Supports Windows mapped drives or UNC' : Supports Macintosh paths3File usage : Provide full file path and extension'Folder usage : Provide full folder path: Accepts with/without trailing "\" (Windows)< Accepts with/without trailing ":" (Macintosh)]+Ignore errors to allow for error evaluation :$>'<4Check if error exists and set response appropriately \!@RT'S8'n(Resume error checkingi>--------------------------------------------------------------, not used. We use gamsinterrupt.dll instead.>--------------------------------------------------------------]( ! $r'Vo>-------------------------------------------------------------- get process id of the GAMS run zero if gams is not running>--------------------------------------------------------------@ !'Ti>--------------------------------------------------------------0 if textbox has not the focus it will not scroll% automatically to the last line added>K[--------------------------------------------------------------. the next statements are need to make sure the progress textbox will scroll "B@ "!B@op>-------------------------------------------------------------- clear all lines in the textbox>-------------------------------------------------------------- "!(do>--------------------------------------------------------------1 add a line to the textbox in the progress window>-------------------------------------------------------------- "!!d f D F "!(do>--------------------------------------------------------------! open report containing the graph>--------------------------------------------------------------` Graph J pB@Ho>--------------------------------------------------------------" close report containing the graph>-------------------------------------------------------------- L NGraph P pB@BL|o>************************************************************** FUNCTION: ReadBLOB() PURPOSE:? Reads a BLOB from a disk file and stores the contents in the specified table and field. PREREQUISITES:? The specified table with the OLE object field to contain the@ binary data must be opened in Visual Basic code (Access BasicC code in Microsoft Access 2.0 and earlier) and the correct record9 navigated to prior to calling the ReadBLOB() function. ARGUMENTS:: fln - The path and filename of the binary information" to be read and stored.2 T - The table object to store the data in.A Field - The OLE object field in table T to store the data in. RETURN:1 The number of bytes read from the Source file. SOURCE:* http://support.microsoft.com/kb/103257* http://support.microsoft.com/kb/194975>**************************************************************   On Error GoTo Err_ReadBLOB RB@V!MsgBox "edit mode: " & T.EditMode Open the source file.]! '   Get the length of the file.]! $Z'X X'zH;k@;"MsgBox "File length = " & FileSize( Read the data, writing it to the table.]! X $'\ \ T$RB@^* Update the record and terminate function. RB@` V X'zX:bP:Error importing dllA@Z \'z:i:>************************************************************** FUNCTION: WriteBLOB() PURPOSE:B Writes BLOB information stored in the specified table and field to the specified disk file. PREREQUISITES:? The specified table with the OLE object field containing the@ binary data must be opened in Visual Basic code (Access Basic; code in Microsoft Access 2.0 or earlier) and the correctA record navigated to prior to calling the WriteBLOB() function. ARGUMENTS:D T - The table object containing the binary information.? sField - The OLE object field in table T containing the- binary information to write.: fln - The path and filename to write the binary information to. RETURN:7 The number of bytes written to the destination file. SOURCE:* http://support.microsoft.com/kb/103257* http://support.microsoft.com/kb/194975>K[************************************************************** !dX5 Get the size of the field.]" T$R%f'X(MsgBox "Fieldsize of blob = " & FileSize X'z4k4& Remove any existing destination file.]" '   V Open the destination file.  # Write the data to the output file.]" X T$R%h'\ \ Terminates function V X'z3d3Error exporting dllA@Z \'zH3i@383Attribute VB_Name = "GamsUtil" '-G Run GAMS from AccessCopyright Erwin Kalvelagen, 2007#Amsterdam Optimization Modeling Groujp(eB@.oa-.com"J  GDCompare Database Expl@icit = v32 api @declarjs" P ' http://msdn.micr osoftj/library/default.asp?url= en-us/sy@sinfo/P/getprivateprofildes@ngP  DB'e FuDnc]GetPS Lib "kernel302" _0AlXiasA (ByVal lpApAPFAs , KeyAny, E DCGB Retu@-d1H0nSizBeLongG!F;QK() B?q/shellcc/platform/reference/fDi{hyfolderpathvSH;FbP`C:b32.d|ll4:9d9hwndOwner m'nhTokenj1C1dwF@s-lpsz&9_1ii!`gcienvironmentvariable. .EGVDic/- "@0&hRVBufFa'j0,](((set(Set7("X("(lp퀔uc()Oar temp rTqgc_?%7?nR>9Mh+5lOF8ACtelV:VϪQՠ)saWwm1ALinhc;lpϤ6.b2lpg㑫H6B \sIlpuU!H uBrЧtDiro, _lpBufferAny, 5BnSize, +ytesP LTotalB% Avail;LeftThisMe0ssag["Sub GetStartupInfo yAlias " A" xRefe#STARTUPINFO)DžFil String`NumberOfSTo]  lpOverlappedcxZ7Const NORMAL_PRIORITY_CLASS = &0H20& @MINITE@ -1 FT_MESSAGE_FROM_SYSTEME1000 Format ;Cɩ" dw`Flags!ASourc©BIptdwIXpdwLanguX pIArgumentjh {AA'Alloc>oX. `FreeG@SetTit#},'9"#j"0@LastError. , Environ?A6 Gener@&Ctr8lEvBNcUsign@gou piWublicTerminaProcthCuExi>dsX@DllDirectory¬_EA`e;A,t F_USESHOWWIND OWÕTDHApNDLEC,Wp_HID!ƝW6_X15t ' -!aglob0"variables Dim pC#_iC|!PROCa_Cqx`hTIONGamsSys`Y##4Mdb_ Templ'_ initia~l` 4 P-Sq UthilI(.dw3ID "=Call Import@5&"Ex"Ll End 0 < q !&flNn)#0== & "upload .dll"Ifd (Or$Ists(0)) Then"PMsgBox "U to database: " & @Rwri te`, False1Ifg--$l O& S *g-interrupBt+Not onl Tru3)p  QReturn the GAMS 0Item dg1Include0s tr@Б!'\' so you` can P4fnly. Ps!wi8both wor0k wi! 2.20 (H Q in user's my doc ) a0Aearli@sys s{Windows' )a ErwpKalvepen, Aug 2005 F_ N=r'>r_coׄstr*qlep"&kAI+gerFMyD9@'[?-7##up@: lookMy Documents Myx = GetADir()I@f Len(l) > 0 Then@strBufferSpace(1024~= - 2) ysgBox "M: too smallmGSys" Exit F@unctio End If- YDim )MLongf_(`sJs BCo CSIDL_PE@RSONALf&H5y `_^"(S_OK0' Succes S_FALS*E1 'a Foldis valid, but does not existhE_INVAL IDARGB 80@070057In"# Valu``xSHTPath(0,l%, @@F Sel Cas~e 6bA'!sѰChr(0))ʨds/ PRigh,i Q"\" sav\e{>hyh5= l?o3Bo8Bge@(nviron@*riabl%AAEnv(key f=)#6N$"A?b"= qNxrcDg%Va& (a:ff,  '(0 DElsp# B0 , rc e%q_`?A~sOO-- Sub Set@saloT_o#g Q >4DS3@ T tempt2T B(O2nO2O2O2 O2P*-+"bN00.L011X֮ where MDB zsitt ?Md.b RmAp plica.CXurrd`jy.FullNamSH/@2saSt`rRev(ps)@? 1Add3 to the PATH.?ڶ- Function AddToPath(Dir As St ring)(Boolean Dim s>&s =.r & ";" GetEnv("PATH")DCallD S ., sEnd  ' BV handle status bar5Sub3Bar(Opal MsgVariant!Temp ' if th*evb^is omitted0 or ty, returncontrol ow to @AccessIf Not IsPMissz(@() They A-<> ""  ,= SysC`md(acwS W,A-C8 El\se4CrF @If @czR sleep fcn se^d@W Wai$tS(NIntegerCMCA$(1000 * >N?A PURPOSE: RPs HumanadaVDes8cri`RErBr&Code Vat occurs i@PI f@PARAMETERS: :!Otem# A$: k@93 Private APIb(6LoSBrAn al`E s!opace(255;= FormatM{age(FORMAT_MESSAGE_FROM_SYSTEM, 0, _k&B! , @ 9 pNull(L+8@7Input?& ain n terminatJ(Chr(0)@'@'s: Acharac bevaO~e_D0PD(ByVIn!nBĽ#)>C Ai!/~Len(%) > 0ʵ = ", vb]CpY ylect Case b0 @!Trim *1/`= ""jJb`PLef(t$(+, - 1 rNe 5`)OP# Run GAMS m`Ml$3`(algorithm!"DllNamel$p11' Ԉq6gms?eCloseGraph1r .2`LogLine("Wor k dir0&ory : A}.^MGamsǠMdb0 d8 ' needpPfigdxio.d+ g.ex5 dT ?inGpruptqR'@Box "4WW@e M&g ,ҕT12as!progrb.Visiy`= TruH %Cons(,eText b#2 Pro!SoluqRrds(9 :ub_20` w1 schema.pb"readca0 csv fil@o-_S`SR In|i(0ւ;flА%R= %& " TOpe n Q Out3r?#2@nt #2, "[.]CorCHer=Fa>DecimalSymbol=.&at=Delied(,)>p1."City1!Ơ% Width 50ol22I@/&o!&4.$ wX $6o6o%B|ll6 AddLogLine("") If Not FileOrDirExists(Work4 & "solution.csv") ThenrxCall HNo \ f available1at SubDEndNWriteSchemaIni:2'Open connec to current Access database/Dim db As Va riant Se"t = CDbB(1 thi#oes not w as advertised. See http://support.microsoft.com/kb/2414778'DoCmd.TransferText acImDelim,{.ini"fln, Fali(kSQLlStri ng = "DELETE * FROM"Mm >db.Exe`cute  B@ INSERT INTOyRS@CTE[5;0FMT=4rd;HDR=No;DATABASE="@ȗ;].[r#];))@/CloDHwhF B?GraphA3£'-?N ' w model stored inSO 5 GAMSM(al$gohmGInteger, LIAB%!LUhSLarsaRecordsejg= GetgM'MsgBox "B|aFor@ Outpu`{s #1P]t,+ ? :w.!8g7f 0 a"pid1"2abECURITY_ATTRIBUTESWr/,Ft/]suiTARTUPINFOcmdl;WhA(q ')wdo0+errw-fbAqpipe byt& (PeedkNdP  bfet0d (!AXA' our 8bufс pa@.nLeng)=b (pa3bInp~itHandle`4Cr^rd`  envPt%f $Environۑ shfrc)b  "E!(r, hb, pa,*P-Cx= 0+#.~cBA3 StartupInfo(sui)  @.hStdOutput = hWriteA lErrorhd@wFlags0STARTF_USESHOWWINDOW Or .TDHANDLESYwShowW indowBW_0HIDEcm dline"gams " & filename " LO=3 --db=""Application.CurrentProject.FullN80Call AddLogL4("Command ;:8B-" %'VCMD /C PATDH"pidbC reateGce@ss(vbNHString, , pra, t1, 0, envPtr, w\dio _FiKIf 10` Then9MsgBox APIDescri pG(.LasptDll Exit SubREBIf'"[pr!.dw96ID  KDisableRun Butto'Do Whr PeekedPipe(hRead, BpyVal?@@b`Avail,DoEvzs0@C > DbC\c(E0@ A!NFA'#D , E b)E@GoSubd HleC0lose ' this tu$rn@herpe aroundHHbLoop ǁ$N ihTh I9B *h<'0'Integer'Ignore fePFo po wf2 evalucbs#On ba8s:uvN= GetAttr'; 'Cu0B0set resp on"roprriqly;z Ca@.Numb BIG!%0`?TruTP)w3Fa+@eld'Re B>p{GoTo A5OE_>AE4 used. We 0Aupt.dPinstsP7F Pub@:bDopSolver(&rc&0Long= TerminPc(/e@, -1pB! PaK0 Pofte GAMS ruO' ze`OY"vnT(X&C&t!?#otP;b0has Q]focus 0wiP##Q@oll!au(tomP@cAy 4tolPadde/_%|p&e nѠ st%mG1`bP makjuM "('! g@EM4 `?Form s!b.SetF8+Ac0yrXBnboCt= " # a#$5)ic wRs!K?sx_W& svbCrbL/O !openq1 cont aiJ2"graph/-- Public Sub OpenGraph() D oCmd.TRe@port "t", acViewPrev End '-:@ close rpcontaining the g@eC7zOn Error GoTo_G_<, SaveNo)rr": Exit) *:FUNCTION: ReadBLOB' PURPOSEA';s a  fromdisk @file ats`tores^Abents inA specified tab 1ld.PREREQUISIhTESTr withOLE @object@!e2lo binary data must b8e o!@'Visual Bascode (A`ccess%  Micro soft 2.0>earlie r)corr#%ordCna vigat?o (prit+allE` functionFARG UMENTEflne- GpaCA`bnam7fG>informaC"@@Cr@~B.BpcTCld-"b *iFi0 3@( T uRETURN@number of byt@LbPa-Sour ceP%SOURC%W http: //sup.m8.com/kb/103257D#94975_o;9zFD<'o:As Str B, T Variant, _B`,s,)Long !' L"T.EditB'MsgBox $"e m`a: " & M n g?sj/Dim fInteger" f = FreeF@ա F`BtDjAf Getb leng]@>a]=D! Size!F!= LOF(fIf 0!hn@ #0ee5If&A $=& "AAf, writ_@abcgD (=;B^"A`In putB(% , DT(cC).Ap 4dChunk ӁUpe)cCerm0thK[T.lPCm`= 3&sim9dll"r-@2Pg?98 pWeqq`b s V CT BOodj aPW&up SxOqB_OqEqqsOqOqpoOqOqIq`=?q3q'?q!c8qhOqLq$k% $hftk q1VhlpBTpY FA?ePs?}@B"b%# (toQ/u,uteP odesIa!uuuuuVxu96ʅA $ udvt'vu2H TuvA' lsjkP!sSk1= ]ndׇh%blobb{Yoeo o o Remov!y exiq#g #"ρ ЂρnƁOutna3gg!Ty !/w{:aoۆuyaPw@w(0,PuY, ,y TUxsN9w)0q_wr^wnwction End Fun2hPipe vbNullString LastDllError HandleOutputSelStartZPathName'iTemp]hGetAttrNumber- (StopSolverQ(getpidD# (focusTextBoxSetFocus (ClearTextBoxvbCr$vbLfT%DoCmdƧ OpenReport acViewPreview2Err_close_graphacReport%acSaveNoDTksField Edit+FileSizehLOFcData; AppendChunkUpdate Err_ReadBLOB Err_WriteBL#3 LxME (S<S<S<<N0{A85D8DD6-BFF4-4689-8C57-8D966B07DA7A} hp`l`n v`l`n |@  i   ` ~  X%pXX k R X x ( , & R X` "h p x       "   ( H PX `x   "   (rU~| 62!Q+(Q))(1 ) ,I*a*y,**)-q-,A$ - . y..yQ/ 0)/y00111a2I!22 42 3I3xH      H$ ! \*1x x V*''('Hlx*Fh 6hH(+x x\( !xhH(h4K[$*1xx -+vx o4( !x \ 1dldJDP P`1p5P lpJql ld*1`cl`<4ll1tp1lt^tM\@L  L`1x5LC0\, !xtlpL0   0   0   0 h  0   0 p  0   0   0   0   LT$ QTl%CXX@lB4&\N\A4'cD]4540'''$'4(P "TT D#T64$l )C\^* q/)C\l ^+ q/ \,c\ l,cl 0 !X\l$T4$0 `  `K ^!px?p "tt #   ( 8X` "hp x        "    0 @H P"X `p"xlpqltllKpzTpzK`$ ! t0   0 @  0   0   0   0 `  0  0  ~$K$l@l TAD-"qt6TDltF qx'T .pB5TkB]kB=kB] :(,%t@l@l TBD/`<6TD kB<0kB=ltq K[x+'''D:d1NTT 6TD " #lqx$0 !<*TD !"#$%&'()*+,-./012345RxH      H$  \*1x x V*''('Hlx*Fh 6hH(+x x\( xhH(h4 *1xx -+vx f4(  ;<e35hmMGetPrivateProfileStringADSHGetFolderPathAl R0GetEnvironmentVariableAXSetEnvironmentVariableAGetTempPathASleepAttachConsole(WaitForSingleObjectPCreateProcessAt<CloseHandle`CreatePipePeekNamedPipeGetStartupInfoAReadFileHFormatMessageA@AllocConsoled,FreeConsolePSetConsoleTitleApGetLastError GetEnvironmentStringsGenerateConsoleCtrlEvent,TerminateProcessTSetDllDirectoryAxR@R RRDDRhRME@ @@H <> LLLP&p4+p@ i` Riiiii+0p@0 i`iiii+Xp X i@i`i+p ii+p@ i`i pi+p %% iFXhphhhhhhh h0hHh`hxh h$$h((h,,h00h22h 44h888hP<<h@@ !K[h hhh +`p  i@i+<p< iiii i @i"`i$i&)(A%)*A%+,P `p0 `  i.+0 p   i2 i4 )6 A%i+8 pX   i:x i i< i> i@ iB D pX  )(x A%+F p   iH i iJ iL@ iNTH#C%+V p  i iX( iZH i\h i i i^+`,p, +bHPpP +dppp if+hp +j(p +lph inip+r(p i ites+vP@ph@ ifst˜|#B@ #@@%  @ `3 `%|k q ` -k |`xn @`/vk`xgr+`H33`tbi`p\P`lme`jud`d;C``Fi+`(k!!`t3.`pns`flm @Bon@Bro@Bd\@WCve+` 8inG@Lro`\C`Vs\ 8` i (ies`V\T+`+Hk@p,Bkt`tPr`V`s +`*Lk `ft"K[\P+ ` X i~sy`fWi  ` !i n;` F h ` H" +i;C+ ` #6iRO`Gr`   4 $   K---------------------------------------------------------------------------*Op Run GAMS from Accessess ! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group erwin@amsterdamoptimization.comK---------------------------------------------------------------------------j show c\t+p ` 8$Diam`6) ` %Uico`\W` te`sP ` X&si\p`\m  ` '$$ira`  ms`$OG ` `(iILio_`\o &;C %+ ` )""i;C`  EX`& ev`$pt ``0k*""i i ` l `&\ `$X`0 p` +SSii i`F 0% P% p% %`"`$`&`(`*`,`.`0`V+`.lo ,Mi: `<x B@` -k`V+T` .s X` / z N ` 0 <` ` @ 1if  ` 2  ` 3##+!` !4DDi@!----iR `!iT----`rati`X \!icro/default!+`X2k("5**iR H" hiTh"raryi-us/`Xtll/r`Bhget \h"<" i h"˜P # C˜R` C˜xp#B˜zB˜~B#K[  @ @p#!h  #8(p`" #P ` ph@#(@  P H`  ` H# 08&&(''h4x'ðh4`Zuh4HP Nh4pL @H @D @@ @< @8 h4( N@ H( @ x( @ h4 P0)h)))))0)h)H)`xi=X)0)|C)]@*\ @X @T @P )i=@ *@ N@8*0 \}@P* {@h* @ f[@  ++p+++ +X+8+`xH+ +ΜΛX@p @l @\ @L x,,-,p,,,`x,p,@d @\ @X NNN@H --.-Z@.h @ .X _e@8.H vӔ@P.8 ĝ@h.( ߆J@ @ @ ON8////8/p/P/`z tI`/8//tj>>\Ϙ{շ@t ׭@p @l /ݓr(00)NNC@v H@2h111P1"\ؘ@T @1D …O@14 @1$ @1 |C@2 ï@(2 @ @ @ ""2(""H"84H3303P42x33`x 32@3d $K[@`3T @4D Z\@3, @3 @ H @ 4 @ @ @ 66 @"!h% g#5%I$*\Rffff*084f48065c(*\Rffff*084f48065c\0(*\Rffff*084f48065c\1(*\Rffff*084f48065c\2*\R0*#f*\R0*#14*\R0*#9*\R1*#99*\R1*#98*\R1*#af*\R0*#f*\R0*#11*\R0*#13*\R0*#19*\R0*#1a - R X x ( , & R X` :h pH, 8H$ pHH p`H H (  H (  0 8 @ HP X ` h p x                     H( H<"8 H` Hp H ( H    H, HH H( H8 H@ H H H P H X  ` p     Z  Z x D  D"@ H X h x D  D"@ H P  h (*x     D  D "` h  p       Z ( BH R L 8 "@ Zh B       6  8 H X  h " x @c   4+  0 8@H X L L L L ,L (M HM `M hMx ( <@c P+h#  Z &@ ZhB  &:0(p : (Q (  ( 8 @HPX`hpx Z  ZB  ` hx" Z h Z"  *( Z0  ZB (%K[0@+H`px Z 2 Z@B$1 Z "H ZpB    Z   Z"   b p  Z P Zp"   Z 4P ,  .  $ Z B   .   Z 8P 8 ZB  (0@PX `p x  Z  Z8 "       " $! (! 6H!.!  (! ! !"  " 0" Z8" :" Z""  8#@#H#`#p#"##"#*$*0$ `$p$ Zx$ &$ Z%"  `%  h%  x%$%%%  %  0%& &  T(& L& && &' n' ''  '' ' ' Z' (0( ZX("  ( (( ( ( () ) () D0) $x) D)B  ) ))* 0* 8* BH**<**<*(+ 0+ &H+p+++$++  ++ ++ , D, P, D`," ,,,, 0, ,  B-2P- - &--(0-. ...8.@.`.  h.x. .. . D. <. D(/"  p/ x/ ////// //4/, 0P0 p0 0 00 0 0 00 00 1 1 01 @1P1 h1 >x1 1 1 122 @2P2h2p2 0x2  2&22 2 3  3 @3 ,H3 x33 333 3  33 3 344 (484 @4H&K[4 DP4 4 D4B 5 @5 4H5 :5 .5 :5 .06 @`6 B6 6  26(707  :@7 777777  777 D7 208 Dh8" 8888 D8 &(9 "P9 Dx9B 9 99 D9 6(: ,`: D:" : 4: $;@;P;h; Dp; &; D;" (<0<H< DP< 8< D<"  =2 =X= D`= (= D=" > >8> D@> (> D>" >??  (?0? 8? D@? ? ? ? F? $@ 0@ 8@ FP@ F@ J@ @0A pA xA @A (A 8A H0B xB B 8B B B 0B 0C D@CB C  "C C  (C CD D(D "8D`DhD xDDDD (D .DDEE 00E `E pExEE EE EE E DE F 8F @F HPF $F F F FF F(G BpG HG H H J H FpH 4H @H &0I XI `I >pI I I 0I 0I D(JBpJ  J   "JJ$J .J  K KK K ,(KXK`KhKxK "KK *KK:K L   L@LHLPL XL+`L LL L xMK--------------------------------------------------------------------------- Run GAMS from Access! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group erwin@amsterdamoptimization.comK---------------------------------------------------------------------------4------------- win 32 api declarations --------------j http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getprivateprofilestring.asp     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderpath.asp    i http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getenvironmentvariable.asp  i http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setenvironmentvariable.asp   get temp path  sleep@^X^p^p^^^^^^0^H^`^x^^^^^^^ ^8^Pph^^^^p 'K[   % / 3 `Hp   P         ]D "]D #]D`    &    H((]H#]p#]]#T ----------------------------------------------------------------------------------- global variablesT -----------------------------------------------------------------------------------]]]#]>-------------------------------------------------------------- initialize>--------------------------------------------------------------P ($' R$'$'AAo`>-------------------------------------------------------------- ImportDll>--------------------------------------------------------------]  upload.dll' $Uploading to database: A@Z AkHo@>-------------------------------------------------------------- ExportDll>--------------------------------------------------------------`]( gamsinterrupt.dll' $ AkHo@T------------------------------------------------------------------------------------! Return the GAMS System directory; Includes trailing '\' so you can append filename directly.L This version will both work with gams 2.20 (ini file in user's my documentsE directory) and with earlier systems (ini file in Windows directory). Erwin Kalvelagen, Aug 2005T------------------------------------------------------------------------------------@]]]]]]/-------- GAMS 2.20 and up: look in My Documents$'  $' ' gamsdir\gamside.ini'EXECUTE EXECUTABLE *NOT FOUND*   $'   )GetPrivateProfileString: Buffer too smallA@Z'zk  gams.exe 'k`kX"--------- Try GAMS 21.7 and before$' ' gamside.ini'! will search in windows directoryEXECUTE EXECUTABLE *NOT FOUND*   $'   Buffer too smallA@Z'zHk@ gams.exe '   $'iT------------------------------------------------------------------------------------ Return 'My Documents' directoryT------------------------------------------------------------------------------------]P]h]]# search My Documents]# Success]#( The Folder is valid, but does not exist]W# Invalid CSIDL Value$'  $'  KT  $ $'f f f$\ f\'fk f'k KT' KT'nh i` T------------------------------------------------------------------------------------ get environment variableT------------------------------------------------------------------------------------]X]p $'] $  $'V V'd  V$'k i T------------------------------------------------------------------------------------ set environment variableT---------------------------------------------------------------------(K[---------------]  $ $$'Vo T------------------------------------------------------------------------------------ return temp directoryT------------------------------------------------------------------------------------8]x] $']  $'V V'd`  V$'k@ i8 T------------------------------------------------------------------------------------+ return directory where MDB file is sittingT------------------------------------------------------------------------------------] !!'f f f\$$'iT------------------------------------------------------------------------------------ Add directory to the PATH.T------------------------------------------------------------------------------------]x ~;PATH$'fPATH fAiT------------------------------------------------------------------------------------ handle status barT------------------------------------------------------------------------------------][ if the Msg variable is omitted or is empty, return the control of the status bar to Access $   $'d0 $'kd $'koT------------------------------------------------------------------------------------ sleep for n secondsT------------------------------------------------------------------------------------ AoT------------------------------------------------------------------------------------.PURPOSE: Returns Human Readable Description of&Error Code that occurs in API function(PARAMETERS: ErrorCode: System Error CodeReturns: Description of ErrorT------------------------------------------------------------------------------------h]]$' T  $V' $'iT------------------------------------------------------------------------------------1Input: String containing null terminator (Chr(0))1Returns: all character before the null terminatorT------------------------------------------------------------------------------------]X   ' KT $'KT'SX $  $ 'n0k(i T------------------------------------------------------------------------------------ Run GAMS modelT------------------------------------------------------------------------------------p]]]A model.gms'Work directory : A<System directory : A<Mdb directory : A< A& needed to find gdxio.dll and gams.exe A needed to find interrupt.dll!MsgBox "Path = " & GetEnv("PATH")   A "(  "! A AoT------------------------------------------------------------------------------------3 write schema.ini for reading the solution csv fileT------------------------------------------------------------------------------------]x  schema.ini' [solution.csv]ColNameHeader=FalseDecimalSymbol=.Format=Delimited(,)Col1 = "City1" Text Width 50Col2 = "City2" Text Width 50V)K[ohT------------------------------------------------------------------------------------ process csv file with solutionT------------------------------------------------------------------------------------A<  solution.csv$No solution file availableA<|k A*Open connection to current Access database]$". M this does not work as advertised. See http://support.microsoft.com/kb/241477FDoCmd.TransferText acImportDelim, "schema.ini", "solution", fln, False]DELETE * FROM solution'$ $A< $ B@GINSERT INTO solution SELECT * FROM [Text;FMT=Delimited;HDR=No;DATABASE= ;].[solution#csv];'$ $A< $ B@ B@B. AoT------------------------------------------------------------------------------------! write model stored in db to fileT------------------------------------------------------------------------------------ ]] $ 'MsgBox ModelText  Vo>-------------------------------------------------------------- get model file from database>--------------------------------------------------------------]8]P]h*Open connection to current Access database$". ;Create SQL statement to retrieve value from key/value table 4select largetext from largetext where key='mstmodel''$d4select largetext from largetext where key='tspmodel''$k $ %(.&Retrieve value if data is found &!6 largetext$&' d@Model source not found \B@ k &B@B.& B@B. i>-------------------------------------------------------------- write DLL>--------------------------------------------------------------]]]0*Open connection to current Access database$". ;Create SQL statement to retrieve value from key/value table*select blob from largetext where key='dll''$ $ %(.&Retrieve value if data is found &!6DLL not found in database \B@ k]H  &blob $'d  &blob$'kx &B@B.& B@B. o@>--------------------------------------------------------------6 run gams with IO redirection to a textbox (objTarget)>--------------------------------------------------------------` !G|j]]]8]X]x]] stdout + stderr]]% pipe bytes available (PeekNamedPipe)] pipe bytes fetched (ReadFile)] our buffer  ( (  (  (]($j'.]@]X $ & $0'V $G|j  ( AD & ( & ( x z ( | (gams  LO=3 --db=" !!"'"Command line : "A<A<cmdline = "CMD /C PATH" 2 "   .   $ 'F F \!4$A@Z|p kh *MsgBox "pid = " & process_info.dwProcessIDCall DisableRunButton $ ($8bA@ ( ($\', $ , ( *A@F6 &A@, this turns the pipe aroundk` X $A@, !A@, ! A@, (Call EnableRunButton| 6 **K[Gj 5d ,9d5d98q o >-------------------------------------------------------------- check if file/dir exists>--------------------------------------------------------------p:Macro Purpose: Function returns TRUE if the specified file. or folder exists, false if not.4PathName : Supports Windows mapped drives or UNC' : Supports Macintosh paths3File usage : Provide full file path and extension'Folder usage : Provide full folder path: Accepts with/without trailing "\" (Windows)< Accepts with/without trailing ":" (Macintosh)]+Ignore errors to allow for error evaluation :$>'<4Check if error exists and set response appropriately \!@RT'S8'n(Resume error checkingi>--------------------------------------------------------------, not used. We use gamsinterrupt.dll instead.>--------------------------------------------------------------]( ! $r'Vo>-------------------------------------------------------------- get process id of the GAMS run zero if gams is not running>--------------------------------------------------------------@ !'Ti>--------------------------------------------------------------0 if textbox has not the focus it will not scroll% automatically to the last line added>--------------------------------------------------------------. the next statements are need to make sure the progress textbox will scroll "B@ "!B@op>-------------------------------------------------------------- clear all lines in the textbox>-------------------------------------------------------------- "!(do>--------------------------------------------------------------1 add a line to the textbox in the progress window>-------------------------------------------------------------- "!!d f D F "!(do>--------------------------------------------------------------! open report containing the graph>--------------------------------------------------------------` Graph J pB@Ho>--------------------------------------------------------------" close report containing the graph>-------------------------------------------------------------- L NGraph P pB@BL|o>************************************************************** FUNCTION: ReadBLOB() PURPOSE:? Reads a BLOB from a disk file and stores the contents in the specified table and field. PREREQUISITES:? The specified table with the OLE object field to contain the@ binary data must be opened in Visual Basic code (Access BasicC code in Microsoft Access 2.0 and earlier) and the correct record9 navigated to prior to calling the ReadBLOB() function. ARGUMENTS:: fln - The path and filename of the binary information" to be read and stored.2 T - The table object to store the data in.A Field - The OLE object field in table T to store the data in. RETURN:1 The number of bytes read from the Source file. SOURCE:* http://support.microsoft.com/kb/103257* http://support.microsoft.com/kb/194975>**************************************************************  +K[ On Error GoTo Err_ReadBLOB RB@V!MsgBox "edit mode: " & T.EditMode Open the source file.]! '   Get the length of the file.]! $Z'X X'zH;k@;"MsgBox "File length = " & FileSize( Read the data, writing it to the table.]! X $'\ \ T$RB@^* Update the record and terminate function. RB@` V X'zX:bP:Error importing dllA@Z \'z:i:>************************************************************** FUNCTION: WriteBLOB() PURPOSE:B Writes BLOB information stored in the specified table and field to the specified disk file. PREREQUISITES:? The specified table with the OLE object field containing the@ binary data must be opened in Visual Basic code (Access Basic; code in Microsoft Access 2.0 or earlier) and the correctA record navigated to prior to calling the WriteBLOB() function. ARGUMENTS:D T - The table object containing the binary information.? sField - The OLE object field in table T containing the- binary information to write.: fln - The path and filename to write the binary information to. RETURN:7 The number of bytes written to the destination file. SOURCE:* http://support.microsoft.com/kb/103257* http://support.microsoft.com/kb/194975>************************************************************** !dX5 Get the size of the field.]" T$R%f'X(MsgBox "Fieldsize of blob = " & FileSize X'z4k4& Remove any existing destination file.]" '   V Open the destination file.  # Write the data to the output file.]" X T$R%h'\ \ Terminates function V X'z3d3Error exporting dllA@Z \'zH3i@383   ---- GAMS 23.5 and before   $'zxL  $ \gams.exe$~e ---- GAMS 23.6 and later  $'zLkLLAttribute VB_Name = "GamsUtil" '-G Run GAMS from AccessCopyright Erwin Kalvelagen, 2007#Amsterdam Optimization Modeling Groujp(eB@.oa-.com"J  GDCompare Database Expl@icit = v32 api @declarjs" P ' http://msdn.micr osoftj/library/default.asp?url= en-us/sy@sinfo/P/getprivateprofildes@ngP  DB'e FuDnc]GetPS Lib "kernel302" _0AlXiasA (ByVal lpApAPFAs , KeyAny, E DCGB Retu@-d1H0nSizBeLongG!F;QK() B?q/shellcc/platform/reference/fDi{hyfolderpathvSH;FbP`C:b32.d|ll4:9d9hwndOwner m'nhTokenj1C1dwF@s-lpsz&9_1ii!`gcienvironmentvariable. .EGVDic/- "@0&hRVBufFa'j0,](((set(Set7("X("(lp퀔uc()Oar temp rTqgc_?%7?nR>9Mh+5lOF8ACtelV:VϪQՠ)saWwm1ALinhc;lpϤ6.b2lpg㑫H6B \sIlpuU!H uBrЧtDiro, _lpBufferAny, 5BnSize, +ytesP LTotalB% Avail;LeftThisMe0ssag["Sub GetStartupInfo yAlias " A" xRefe#STARTUPINFO)DžFil String`NumberOfSTo]  lpOverlappedcxZ7Const NORMAL_PRIORITY_CLASS = &0H20& @MINITE@ -1 FT_MESSAGE_FROM_SYSTEME1000 Format ;Cɩ" dw`Flags!ASourc©BIptdwIXpdwLanguX pIArgumentjh {AA'Alloc>oX. `FreeG@SetTit#},'9"#j"0@LastError. , Environ?A6 Gener@&Ctr8lEvBNcUsign@gou piWublicTerminaProcthCuExi>dsX@DllDirectory¬_EA`e;A,t F_USESHOWWIND OWÕTDHApNDLEC,Wp_HID!ƝW6_X15t ' -!aglob0"variables Dim pC#_iC|!PROCa_Cqx`hTIONGamsSys`Y##4Mdb_ Templ'_ initia~l` 4 P-Sq UthilI(.dw3ID "=Call Import@5&"Ex"Ll End 0 < q !&flNn)#0== & "upload .dll"Ifd (Or$Ists(0)) Then"PMsgBox "U to database: " & @Rwri te`, False1Ifg--$l O& S *g-interrupBt+Not onl Tru3)p  QReturn the GAMS 0Item dg1Include0s tr@Б!'\' so you` can P4fnly. Ps!wi8both wor0k wi! 2.20 (H Q in user's my doc ) a0Aearli@sys s{Windows' )a ErwpKalvepen, Aug 2005 F_ N=r'>r_coׄstr*qlep"&kAI+gerFMyD9@'[?-7##up@: lookMy Documents Myx = GetADir()I@f Len(l) > 0 Then@strBufferSpace(1024~= - 2) ysgBox "M: too smallmGSys" Exit F@unctio End If- YDim I>LongAa_'_(b BCo CSIDL_PERSONAbL@W&H5`@'e^"(S_OK0' Succes S_FPALSE1 'Aa Foldis valid, but does not existhE_INVALIDARGB 800700527uIn" Valu@XA|a= SHP*S P@ath(0,,>  &q[BSelA Case ߲Bs /_jhr(0))? b@@RiDghe, 1c_\_ sBbwH> Xz5= t~?q43B?o8Bge@(nvironq@*riabl%AAEnv(key f=){#6N$,"A?bߠ"-NrcD%Va& C(aa:ff,  '(0K R s%B0 , rc e%q_`?AsOOgSub Set@saloT_o#g Q >C@ T tempt2T B(O2nO2O2O2 O2P*--{"bN00. ~ 0011X where MDB zsittMdbs2 s = Application.CurrentProject.FullName Get@MdbDirLeft(s, InStrRev"\")) End Func0 '-PV A@dd dirory to the PATH.Vtj=ToPath"(As ing) BooleanDim & ";" & Env4("]"Ca@ll Set , shandle status0 bar?TҀ SubNBar(Opal MsgARVaria ntDRTemp  T' if+ v b@/is omitted0 or @ty, return control o;AAccessIf Not IsMis sz() Th2ey A<>H "" ,= SysCmd(acwSW,;C8 ElsCuCrF IfBu1?=y0 sl eep f1n se`/d+ .AJWaitS (NFInteger&#l!(1000 * N 7 PURPOSE: RPs HumanadaVDescri`#RErr&Code Vat occurs in `API f ARAMETERS,: :!Otezm# A@@$:~ k??- Privateob(6LoStr orAnsal`1E s!opace(255;= FormatM{age(FORMAT_MESSAGE_FROM_SYSTEM, -K[0, _k&sB! , @  > `1"I) pN(L_+8@7Input?&" ain`' n terminatJ(Chr(01{'`Qs: gcharac be;'e/"O /"usByVa" vu) S iqt?Q`ZLen() >l 0ZS=cv, vbCppY yl Case b01* pTrim*1/`= ">"jJb`U&D$(+, - 1 rNe 5`)/P# Run GAMS m`Ml$3`(algorithm!"DSEpp11'Ǡ&Ԉ6gms;eCloseGraph1r }.2 LogLine("Work: A}.^GCGams@? d8 '` needp0figdxio.&d+ g.e^x5 dT ?inGruptqR'@Box "_/W@e M&g ,ҕT2as!progrb.Visiy= TruH %Cons(,eText 0!SoluqRrds(9Sub_20` w1 sc`hema.pb"rxead!V10 csv fil@o_ SR Ini(07_!:flА%R= %& " TOpen Qa Outrq<#2@nt #2P, "[.]SCoHe0r=Fa>DecimalSym`bol=.&a@t=Delied(,)>p1."City1!Ơ% Width 50ol22Ie #2 End Sub '-P process csv file with solutionVxPrivate PSsRecords(WorkDir As String) Call AddLogLine("" If Not FcOr Exist$& "l.w") Theq)+Noavailable80tЀ IfRWriteSchemaIdb.ExecuiQL BINSERT INTOyS@CTE[5;FMT=4rd;HDR=No;DATABASE=" & E;].[Ř#];))@/Clo$$;[ha"AHGraph!O?7!waZ model stored inO@W!?0 j GAMSM(aHlgohmGInteger, LIAB%!LUfrsaejbg= GetgM'MsgBox> "B|aFor Outpu`{ps #1 `}#1,+ ?_*;#8g7fro`?z FunC%,$5)ac4ϛ3ayH9*_ JC Cre st &m\re eve value aB(key/lõhT= 1KDsel lar@3A where ='mstu'cEEETdet tspxnd ki`=m=.1,1(e5'RRif gf0oundr`rs.EOF =_wy"rs("vyErr.Ra`k "6[urcem" Tr TWbPU-??NO1q8TDL?iO7 Pu0blicrdll(zP, exy17BooleanKq4?7Q@5?7jz ?7oi?7#z'70R77t700blob3:?5y=>'4 o/eto/@o/P4i/TrpBh, +t,u9kaLong" m(Ek ,sBLOB(rsp35Read#, ',B5sY3 5z53 O.Q5run gamsIO ir׵a QQbz(objT2W 8' 8RunCon`e(v0namen, fA5, wd04_info.dwID <> 0 B!a"pidA"2a!SECURITY_ATTRIBUhTESWr/,t#/]suiTARTUPINFOcmdlt;T,hA(q ')Pdo0+errw-fbAqpipe byt& (PeekNdP-Fbfet0d (!AXA' our bufэ pa.nLeng = (pa3bInp~itHandle = 1 pra.nLength@()hthDh>Dim envPtr As Long,$= GetEnvironmentStr ings( hPipe ?Vrc V= Create2(hRead, hWrite, pa, 01[If 0 Then Exi t Subsupi.cbwCallYStartupInfo(.hStdOutput;LA Error d@wFlags STARTF_USESHOWWINDOW Or TDHANDLES,wShowW indow!W_0HIDEcm dline "gams " & filename" LO=3 --db=""Application.CurrfProject.FullN EAddLogL("Command :!Q "'+CMD /C PATH"pid1xrocess0(vbN@$C, Dzr{, 1},, wdi8r, cB_i@q%@ÄMsgBox APIoDescri pG(.LastDll SBIf'"[pC2!.dwsZ6ID  XDisableRunButton Do Whr P(eekedIBy`Val 0B@bAvail, ,DoEvzs@-!C > "b#.1( l@;@oF$q, =b#tD% Go Sub HHlejClosec{ ' this turnhe paaround(E'1 Loo>p A4hTh I9B *[h<'0':F51iTemp1Integerd d'Ignore eA|PFlo wf2 `evalubs#OCpResuvNAttr'; 'Cu0B0set respon"roprily;z CaajNumb BIG0`?TrueSP)wFa+@eld' B>GoTo A5OE_>AE4 used. tWe 0upt.dins~t@P7F 0 Pub@1 StopSolver «TerxminPcG.hT, -1"B Pap% Pofte GAMS ruO' ze`OY"vnT(XLeC)t%?#oWtP;bhas Q]focus wiP#Q@oll!automP@cAy tolPadde/_%|p&e n  st%s aKne`bP mak]ju "8'! g?@EM4 `?Fo0rms!b.SetF8_+Ac0yrXBnboCt= " # a#$5)ic wR Public Sub AddLogLine(s As String) Forms!progress.Te xtBox =:& s & vbCr Lf End '-:@ open report c@ontain the grapVh@dO6G+(DoCmd. RA"", acViewPrevKyclose yC=On Error GoTo_#_[D'B @AE, FSapveNoGr rI:Exit7C P*:FUNCTION: ReadBLOBs'PURPO4SE 's a  fromdisk file astoĂAents inA specified tab ld.PREREQUISITEST withOLE object@!elobinary data muspt beB!@'Visual Bas@code (AcczC ` Microsoft d2.0Bearlier)mcorrordnavigato priGtalltG0 functione#ARGUMENT"flnɀ2- #pa!!0A1namf#Dinf@a # C!r ?""81TCC #6d-"b *iFi0 3@( T uRETURN@number of bytes} adcPa-Sour ceP%SOURC%W http: //supA.m8.com/kb/103257D#94975_o{9zFD<'o:, T!Varia`nt, _B`,s,Long !' L"T.EditB'Msg "e m`a: "M !a/sj/Dim fInteger" freeF@ ` BtDjA`B' Get"Mleng]?@!a]=D! Size!F!= LOF(fIf 0!hn" @  05WB1{I 6!  =bEF !3, writ?]0q17 DK() BP/! InputB(, T(!).ApdCh0unk AFUpeI#KermPtP4wG T.BlP?Cm`= &simÁ9dll"r-@2Pg?98W pWeqqspV CT NkBo aPn&up SxOqB_Oq1^WsOqOqOqqr#rPOq@qm?q3q'?q!c8qhOqLq$k% $hftk q1VhlpBT+ ߢFA?ePs?}@B";# p'~PQ/u,utäHdesIa!uuuuu?Vxu9 4ʅA $ udw%vu2H TuvAlsjk?P!sSk1= ]ndh%blobb{Yoeo o oA Remov!y exiq#g #ρρ!Outna3ggaOy!Write the data tooutput file. @ Dim D() As ByteXH = T(sField).GetChunk(0, FileSize)TP8, ,"' Terminates functionClosHe f WrB8LOBlVExit F6 E(rr_-:#Ms@gBox "or exporting dll"; .- ,nd4the binary information" to be read and stored.$` $A` $` n irU 0! A$ Q ! Y Y( )Q 4y58`<!ppp @9attt`I D9xxx`H9zzzL9|||P9~~~/K[T9 X!YI \9ivvvGamsUtil ` `!Y d9rrr` qWW0   0 p  <'8%'H%'X%:h%x$ `x `x (h%x! x xG:X%4:h %x$ Tx $ 4W$ = C )x46$ h$ ! x4$0 @  0   T x! P x (x $ ! x0   d@8D\(ght)'rU T,&p $`h (A`l  ($`p $`t nx1"62@rs21C >y(( Mo`veNexrU $$$Y$ 49$K Y3 LlNoEsQ <֍]FWkzI?j@xI?j@NoEsQ <ME,[LSS>LLLL L<0<4<8<<<N0{A85D8DD6-BFF4-4689-8C57-8D966B07DA7A} p hp`  `l`n v` !`l`n |@` k   5i  ` @ `  Q` ~`xk ^ `  aX%p@pic %f % hp~@Px @h @ X K @8H @8 $E@4 AN @$ @ t P8@x `XXp  0K[5%I$*\Rffff*074f48065b*\R1*#99*\R1*#98*\R1*#25*\R1*#55*\R1*#92$*\Rffff*084f48065c*\R1*#48 48p<t@xDzH|L~PTXv\`rd k R X x ( , & R X` " h p x       "    ( H PX `x   "   ( <  ( G8X` " hp x        "     0 @H P"X `p" x   4 $   K---------------------------------------------------------------------------*Op Run GAMS from Accessess ! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group erwin@amsterdamoptimization.comK---------------------------------------------------------------------------j show cities table]@]Xcities'l l n pB@rt |j \!^A@Ztopx show distance table]] distances'l l n pB@rzh|`xX \!^A@Zz@o8" startup code: main form is openedProgress pB@rA~ (Consolas "!!(Ao@ quit the application pB@@|80 \!^A@ZoA Solving ...A] !' AAA~o (o B@H (. the next statements are need to make sure the progress textbox will scrollAXANo@Attribute VB_Name = "For@m_Main@"D Bas0{A85D8DD6-BFF4-4689-8C57-8D966B0@7DA7A} |G lobalSpacFalse dCreatab"lTru Pr@edeclaId"Expose_TemplateDerivCustomi&zD$'-G ' Run GAMS from Access  Copyright Erwin Kalvelagen, 2007Amsterdam OptiVtion Modeling Gr(oupe!@ao.com5F #@"Comp@j DAthlicit  Pdf Sub CitiesButton_C@ k()n@Dror GotTo_O 4 `show @ Dim stDoc½As BSng L@inkCriXia H̓BoCmd.Op&eG, AstC3Exit0:OACB rr M sgBoxC.D escrixonResuTc` End% 0Dist0On0"-'#0d an~g0c0%0 s1@1100 0ON0 0BI(C(l Integer b' -Lartup c : m f is oQed1S"Progrd&Call En`>Fr .Valu1 s!pd .TextP.F0ont."kcCo`nsola2" G@UtilInAOQuiO_"' q the app`aBDtaFp 4???#?o0'8") I5BStatusBar("Solv...n"BA0Pv$Sv0uj(v8_$@ 1K[9.^!rC(.P*JIb.SetFocuv_'$n-6tements mneto 7ke sureC ' 1 t2bYwi5YolvlDf3yClearwv2 A+ant Se"t = CDbB(1 thi#oes not w as advertised. See http://support.microsoft.com/kb/2414778'DoCmd.TransferText acImDelim,{.ini"fln, Fali(kSQLlStri ng = "DELETE * FROM"Mm >db.Exe`cute  B@ INSERT INTOyRS@CTE[5;0FMT=4rd;HDR=No;DATABASE="@ȗ;].[r#];))@/CloDHwhF B?Gra@a% %xxx5DH!pppSW0   0   0 P  0   <48@ ir׵a aPbz(objT?2W oo 8RunCon`k 3/x$H4v 3$JotGamsInterruptP0A4Fdbf)G` {;ևJPa2x;ևJPa20A4FdbME(SLSS6N0{6615C4E9-8DA9-4729-A89E-600C7B03B2ED} +Dp@ iF`iH L` h  PP` l iH----`F----`V---- b` p * d` t .%PH %Bx %xP Tx h 5%I$*\Rffff*094f48065cr4t8v<x@DpH2 R X x ( , & R *X H F B D` >  H" "  ( 0 8H `h    "   "   0@K---------------------------------------------------------------------------*Op Run GAMS from Accessess ! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group2 erwin@amsterdamoptimization.comK----------------------------------------------------------------------2K[@ P 8$&t@x p@Ph @hX @H @8 @4 @$ @  `@x @t @d @ T @( D @@ 4 @X $ @ "@ X @ (  6B&d$@l D@\ D@T (  :h B@x >:0 @x 0Hp@$ g%I$*\Rffff*0D4925cce2*\R1*#99*\R1*#98*\R1*#25*\R1*#55*\R1*#92*\R0*#13*\R0*#19*\R0*#14$*\Rffff*0h4925cd67*\R1*#48 |4v8~<r@DHLPpTXt\x`zd k R X x ( , & R X` "h p x   @  <  "   ( H PX `@x  < "   ( <  ( G8X` "hp x      <  "   #  0  @H P"X `p"x   4 $   K---------------------------------------------------------------------------X# Run GAMS from Access! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group' erwin@amsterdamoptimization.com'K---------------------------------------------------------------------------0 show cities table]p]cities'   B@ | !A@o show distance table]]5K[-----$#signature of gamsinterrupt routine:*Afunction GamsInterrupt(pid : DWORD; interruptType : WORD) : BOOL;? stdcall; external 'gamsinterrupt.dll' name 'GamsInterrupt';;we could implement TextBox Edit component dynamically so we>can trap errors if the com class cannot be found. in that case7 we could load a different component (e.g. a richedit).ANoR] $T'F FG|j]8 F H$D'VAX|pRh \!^A@Z \B`|@o8P try to interruptAPo try to killAPoгAttribute VB_Name = "Form_Progre ss" Bas0{6615C4E9-8DA9-4729-A89E-600C7B03B2ED} |Global!SpacFalse dCreatablTru Predecl2aId"Ex0pose_TemplateDerivCust0omizD$'-G ' Run GAMS from Acc  Copyright Erwin Kalvelagen, 2007Amsterdam OptiVtion Modeling GProupe!@ ao.com'5F signature of g@in* rupt %tine:@ func,G@IE(pid : DWORD; Type A)BOOL ; stdcall; ex@ nal '.dll' n''@we co uld iem ent TBo@x EditmHpondy@iy so w'can trap errors@ if thAm" ss not be found.4@a0load a differ@gD(e.g. riche%).Z~|Comp< Dlihcit P D F/ Lib "'" _ (ByV+!4As Long<, C74)  Sub ClearBut ton_Ck(r) C8/ ` End @SendE3 On`g 2 GoToA_&!FDim Hb= geFtIf bR= 0) The >xBA rc= +['& "!focus&! EErrG#i MsgVrr.Descri@}onG @./B q-f&5'^y to't` 308Kill k 1 rU p;( ! <;)+q I q 1 Q  HIHY 9a@4a|||@ 8ities table]@]Xcities'l l n pB@rt |j \!^A@Ztopx show distance table]] distances'l l n pB@rzh|`xX \!^A@Zz@o8" startup code: main form is openedProgress pB@rA~ (Consolas "!!(Ao@ quit tME (SLSS<N0{18DD9577-06EE-44D7-AE06-02A73ED8D31D}` p@22i`i``  `$`& `*`,`.`0`2`4, i>i@i 8%p0pH5%I= "    08  0P B 3K[ (08@ HP X`  hx   ((0LX     B  (08@ PxScaleMode = 3 'Pixels]  $'*Open connection to current Access database]$". ;Create SQL statement to retrieve value from solutionq query]select * from solutionq'$] $ %(.&]]]](]@}'2]Xd'4 &!6x1$&'*x2$&',y1$&'.y2$&'0 &B@8 4  * 2$: '* 4  , 2$: ', 4   . 2 $: '. 4   0 2 $: '0line ( *, .) - ( ,, 0)A< * . , 0 0 &B@B.& B@B. op > @  >'d @'kiAttribute VB_Name = "Report_Graph" Bas0{18DD9577-06EE-44D7-AE06-02A73ED8D31D} |GlobalSpacFalse dCreatablTru PredeclaId"Expose_TemplateDerivCustomizD$Option Comp@ DT P&* Sub Detail_Format(Cancel As Integer, Count ) 'ScaleMod3Pixels Dim SzLong = min(Width, He0ight)'Open connecbto curre cces8s d3!dbVariantCet @= CqDb(Bne SQL stB&m@reeve value from soluA!q query5@JS@ 5#@sel- * Frs+@=-.@Recordset()sGGx1AT#xj2yO yK #isrJ= 125  off%K  00 WhiNot rs.EOFBl0=`("x1"62@rs21C >y(( Mo`veNex@ iD+ RXd(O* / C<2 CY - ` CalsddLogLine("l (" &p& ",A`@)a"2$B)g+Me. (x1, y1)-(x 22#Wend'9+Cl"S`kbU ;hi_db.+o& EndciFunC|x7%J`E)If` < y) Txhenb< Gx}EⴀCvIf! 689-8C57-8D966B07DA7A}  (%  `k$ `xx`tlage `k(!`xzati`t----  p`hkP, 5i"  ,`k0@ 4`p Tk4 Q`8Z $H`p xk8^ 6`@ xk< ap0H %  %pH`t@p @` @P @0@ @0 @, @x @ @ H,@ H$x`@ @p @` @P @@ @0 @, @  @8 @P 4K[{6615C4E9-8DA9-4729-A89E-600C7B03B2ED} (%+Dpp iLightiF& A J`|k L`8k0iF ----`Lxure `2ttine R`xk* T`xk.0H %Bx % hP0 8PD@p @l j1@h j1@hX @H j1@8 j1@( j1@ j1@ @ Lj1j1j11@x j1hPLj1j1j11@x j1x0P Tg%I$*\Rffff*0I4925cd07$*\Rffff*0h4925cd67*\R0*#13*\R0*#19*\R0*#14r4t8v<p@xDH2 R X x ( , & R *X H F B D` >  H""  ( 0 8H `h  <  "  "   0@K---------------------------------------------------------------------------  Run GAMS from Access! Copyright Erwin Kalvelagen, 2007& Amsterdam Optimization Modeling Group erwin@amsterdamoptimization.comK---------------------------------------------------------------------------#signature of gamsinterrupt routine:@Afunction GamsInterrupt(pid : DWORD; interruptType : WORD) : BOOL;? stdcall; external 'gamsinterrupt.dll' name 'GamsInterrupt';ti;we could implement TextBox Edit component dynamically so we------>can trap errors if the com class cannot be found. in that case$7 we could load a different component (e.g. a richedit).Z0--AoN]P$'L------ LG|j1In]h L F$D'2rmA|pNh !A@ra BPe the |@o8 try to interruptAL------o try to kill\WIAL\SyoгAttribute VB_Name = "Form_Progre ss" Bas0{6615C4E9-8DA9-4729-A89E-600C7B03B2ED} |Global!SpacFal7K[ distances'   B@h|`X !A@@o8" startup code: main form is openedProgress B@A$ &((Consolas t"v!|!*(Aop. quit the application B@02@|8.0 !A@2oA6 Solving ...AB] &!('8 8AdABA$o :(<oH >B@ :(<. the next statements are need to make sure the progress textbox will scrollAAo@Attribute VB_Name = "For@m_Main@"D Bas0{A85D8DD6-BFF4-4689-8C57-8D966B0@7DA7A} |G lobalSpacFalse dCreatab"lTru Pr@edeclaId"Expose_TemplateDerivCustomi&zD$'-G ' Run GAMS from Access  Copyright Erwin Kalvelagen, 2007Amsterdam OptiVtion Modeling Gr(oupe!@ao.com5F #@"Comp@j DAthlicit  Pdf Sub CitiesButton_C@ k()n@Dror GotTo_O 4 `show @ Dim stDoc½As BSng L@inkCriXia H̓BoCmd.Op&eG, AstC3Exit0:OACB rr M sgBoxC.D escrixonResuTc` End% 0Dist0On0"-'#0d an~g0c0%0 s1@1100 0ON0 0BI(C(l Integer b' -Lartup c : m f is oQed1S"Progrd&Call En`>Fr .Valu1 s!pd .TextP.F0ont."kcCo`nsola2" G@UtilInAOQuiO_"' q the app`aBDtaFp 4???#?o0'8") I5BStatusBar("Solv...n"BA0Pv$Sv0uj(v8_$@ 9.^!rC(.P*JIb.SetFocuv_'$n-6tements mneto 7ke sureC ' 1 t2bYwi5YolvlDf3yClearwv2 A+`abcdefhjmnop+DDDiD@ 4 Errr@ 81Ettt@ <QEvvv @@Iqppp@DqE) Exxx@HdW<   $ KC ^qxlx" lx^qphFX l6X8 llHl$ $hlX8DYx$ DYx$ <48@rU L,`d !&&0A` h(((naphnew" HerU I ( q!9$p \ H ,3$HV5GamsInterruptP6^ͷCKuo:f)G` {4M^C Ep}dx4M^C Ep}d6^ͷCKuo:MEPSLS S> LN06K[se dCreatablTru Predecl2aId"Ex0pose_TemplateDerivCust0omizD$'-G ' Run GAMS from Acc  Copyright Erwin Kalvelagen, 2007Amsterdam OptiVtion Modeling GProupe!@ ao.com'5F signature of g@in* rupt %tine:@ func,G@IE(pid : DWORD; Type A)BOOL ; stdcall; ex@ nal '.dll' n''@we co uld iem ent TBo@x EditmHpondy@iy so w'can trap errors@ if thAm" ss not be found.4@a0load a differ@gD(e.g. riche%).Z~|Comp< Dlihcit P D F/ Lib "'" _ (ByV+!4As Long<, C74)  Sub ClearBut ton_Ck(r) C8/ ` End @SendE3 On`g 2 GoToA_&!FDim Hb= geFtIf bR= 0) The >xBA rc= +['& "!focus&! EErrG#i MsgVrr.Descri@}onG @./B q-f&5'^y to't` 308Kill k 1 hT.lPCm`= 3&sim9dll"r-@2Pg?98 pWeqq`b s V CT BOodj aPW&up SxOqB_OqEqqsOqOqpoOqOqIq`=?q3q'?q!c8qhOqLq$k% $hftk q1VhlpBTpY FA?ePs?}@BYy( 9Qya( q @4 9qrrr @89 Ya ttt@< y @@9 Y pppWX/v! p! ddlpYhkvYlhldqxP$ QPTCLL@TB-N?5]x-N?5]X OME$SLS S>LL <(<,<0<4<8<<<N0{18DD9577-06EE-44D7-AE06-02A73ED8D31D} (% Z`kpd22i" i\`^x`< `Lb`rp`d`f`h8`j 8`l`n 0,``x+h 4it iv0i 0%X8K[%`T hpP(@v `P@p ``@l PP@h ``@d @@P P`@X, P`@@ `@@p pp@ @@@ pp@ P@ ``@ ``@ il@ bs@ \M@0 r"@H pS@` C:@x il@ ft@ + ``xh`at``Hxit` SeHShe0hLldPg%I$*\Rffff*0H4925cd07*\R1*#99*\R0*#15*\R1*#93*\R1*#98$*\Rffff*0h4925cd67r4t8<p@= "    0/8  0P  B   (08@ H P X `  hx  < <(J(J0LrX%     B   (08@ Px0ScaleMode = 3 'PixelsTA]  b$`'^::P*Open connection to current Access database]$.;Create SQL statement to retrieve value from solutionq query]select * from solutionq']  %.] ]8]P]h]}'l]d'n !x1$'dx2$'fy1$'hy2$'j B@p n ^ d l$r 'd n ^ f l$r 'f n b ^ h l $r 'h n b ^ j l $r 'jline ( d, h) - ( f, j)Ap d h f j 0 B@B. B@B.o t v  t'`d v'`kiAttribute VB_Name = "Report_Graph" Bas0{18DD9577-06EE-44D7-AE06-02A73ED8D31D} |GlobalSpacFalse dCreatablTru PredeclaId"Expose_TemplateDerivCustomizD$Option Comp@ DT P&* Sub Detail_Format(Cancel As Integer, Count ) 'ScaleMod3Pixels Dim SzLong = min(Width, He0ight)'Open connecbto curre cces8s d3!dbVariantCet @= CqDb(Bne SQL stB&m@reeve value from soluA!q query5@JS@ 5#@sel- * Frs+@=-.@Recordset()sGGx1AT#xj2yO yK #isrJ= 125  off%K  00 WhiNot rs.EOFBl0=`("x1"62@rs21C >y(( Mo`veNex@ iD+ RXd(O* / C<2 CY - ` CalsddLogLine("l (" &p& ",A`@)a"2$B)g+Me. (x1, y1)-(x 22#Wend'9+Cl"S`kbU ;hi_db.+o& EndciFunC|x7%J`E)If` < y) Txhenb< Gx}EⴀCvIf! 8 @P 9, @*mXC.q\G2 u ` K 6 ! c42c41 c42c01 c41c40 c40c39 c39c38 c38c37 c37c36 c36c35 c35c34 c34c33 c33c32 c32c31 c31c30 c30c29 c29c28 c28c27 c27c26 c26c25 c25c24 c24c23 c23c22 c22c21 c21c20 c20c19 c19c18 c18c17 c17c16 c16c15 c15c14 c14c13 c13c12 c12c11 c11c10 c10c09 c09c08 c08c07 c07c06 c06c05 c05c04 c04c03 c03c02 c02c01  LVAL"аΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰΰ MR2AccessVersion BuildAppTitleStartUpForm&StartUpShowDBWindow(StartUpShowStatusBarStartUpMenuBar$AllowShortcutMenusAllowFullMenus(AllowBuiltInToolbars&AllowToolbarChanges AllowSpecialKeysAppIcon,StartupShortcutMenuBarHijriCalendarProjVerNavPane ClosedNavPane Width NavPane Category*NavPane Category NameNavPane View ByNavPane Sort By 08.50 " Form.MainForm           @ 8Graph Optimization with GAMS W     MR2AccessVersion BuildAppTitleStartUpForm&StartUpShowDBWindow(StartUpShowStatusBarStartUpMenuBar$AllowShortcutMenusAllowFullMenus(AllowBuiltInToolbars&AllowToolbarChanges AllowSpecialKeysAppIcon,StartupShortcutMenuBarHijriCalendarProjVerNavPane ClosedNavPane Width NavPane Category*NavPane Category NameNavPane View ByNavPane Sort By 08.50 " Form.MainForm           @ 8Graph Optimization with GAMS W     MR2@ Title AuthorCompanySubject , $Gr