FasdUAS 1.101.10 k l --------------------------------------------------------------------------------------------------------------------------------------------------------  0-------------------------------------------------------------------------------------------------------------------------------------------------------- l  2, By Xueyuan Su, Yale University, 08/17/2009. X By Xueyuan Su, Yale University, 08/17/2009.  l l { This is a tool box of some common functions used in Optimization. This version is for Excel for Mac, based on AppleScript. This is a tool box of some common functions used in Optimization. This version is for Excel for Mac, based on AppleScript. l NH I have also implemented another version for Excel for PC, based on VBA. I have also implemented another version for Excel for PC, based on VBA. l l  QK Please send your comments and feedbacks to "xueyuan.su@gmail.com". Thanks! !! Please send your comments and feedbacks to "xueyuan.su@gmail.com". Thanks!"# "l$% $--------------------------------------------------------------------------------------------------------------------------------------------------------%&&0--------------------------------------------------------------------------------------------------------------------------------------------------------#'( 'l()* )l*+, +l-. - global constants.//" global constants,01 0p223  pi 3 0expExp145 4l6 6r78 7m99@ !TD. 81  pi 5:; :l< <r=> =m??@ W >o 0expExp;@A @lABC BlCDE DlFG F-' pop up a window for function selectionGHHN pop up a window for function selectionEIJ Il K Kr LM Lm  boovfals Mo 0 usercanceled userCanceledJNO Nl 7P PQ 7QRS Qr,TU TI(VW .sysodlogaskrTEXT VmXXYY8Please select the function: WZ[  btns ZJ\\]^ ]m__`` Pivot^ab amccddNLbe emffggLQP[hi  dflt hmjjkk Pivotilm  appr lmnnooOP_TOOLSmpq  disp pm  sticqr  givu rm"< Uo 0 dialogresult dialogResult RRs .ascrerr ********st  errn tdu um Sr47vw vm45  boovtrue wo 0 usercanceled userCanceledOxy xlyz{ zl8| |Z8}~ }o89 0 usercanceled userCanceled ~k<F I<C .sysodlogaskrTEXT m<?User cancelled. LDF nIQ 1LP  gavu oIL 0 dialogresult dialogResult kT^ IT[ .sysodlogaskrTEXT mTWUser timed out. L\^ =al nah 1dh  bhit oad 0 dialogresult dialogResult mhk Pivot not Ipt 0 selectpivot selectPivot fop =w nw~ 1z~  bhit owz 0 dialogresult dialogResult m~NL n I 0selectnlselectNL f = n 1  bhit o 0 dialogresult dialogResult mLQP n I 0 selectlqp selectLQP f{ l l i I 0 selectpivot selectPivot l k l $ get the position of ptElement< get the position of ptElement r m  boovfals o 0 usercanceled userCanceled Q r I .sysodlogaskrTEXT mlPlease input the position of the element to pivot on:   dtxt m   appr m LPivot(ptElement, ptArray) is selected.  givu m < o 0 dialogresult dialogResult R .ascrerr ********  errn d m r m  boovtrue o 0 usercanceled userCanceled l  Z F o ! 0 usercanceled userCanceled k$, I$) .sysodlogaskrTEXT m$%User cancelled. L*, n/3 102  gavu o/0 0 dialogresult dialogResult~ k6> I6;}| }.sysodlogaskrTEXT m67User timed out.|{ L<>zz{~ rAF nAD 1BDy y ttxt oABx x0 dialogresult dialogResult ow w0 arg_ptelement arg_ptElement lGGvutvut lGGs s  get the range of ptArray   2 get the range of ptArray   rGJ   mGHr r boovfals oq q0 usercanceled userCanceled  QKp rNe INcp p.sysodlogaskrTEXT mNOFPlease input the range of ptArray: o o dtxt mPSn n appr bT] !  bTY"# "mTW$$%% Pivot( #oWXm m0 arg_ptelement arg_ptElement !mY\&&''., ptArray) is selected.l(k l givu (m^_jj<k oi i0 dialogresult dialogResult Rhg) h.ascrerr ********g)f*e f errn *d+ +mdde rmp,- ,mmnc c boovtrue -ob b0 usercanceled userCanceled./ .lqqa`_a`_/01 0Zq2345 2oqr^ ^0 usercanceled userCanceled 3ku6678 7Iu|]9\ ].sysodlogaskrTEXT 9mux::;;User cancelled.\8<[ <L}ZZ[4=> =n?@ ?1Y Y gavu @oX X0 dialogresult dialogResult>AW AkBBCD CIVEU V.sysodlogaskrTEXT EmFFGGUser timed out.UDHT HLSSTW 5rIJ InKL K1R R ttxt LoQ Q0 dialogresult dialogResult JoP P0 arg_ptarray arg_ptArray1MN MlONMONMNOP OlLKJLKJPQR QlISTI S invoke pivot functionTUU, invoke pivot functionRVW VnXY XIHZG H 0pivotZ[\ [oF F0 arg_ptelement arg_ptElement\]E ]oD D0 arg_ptarray arg_ptArrayEG YfW^C ^lBA@BA@C 82 call pivot function with user specified arguments__d call pivot function with user specified arguments`a `l?>=?>=abc bl<;:<;:cde difg fI987 90selectnlselectNL87 glhij hkkklm ll6no6 n get the first argumentopp. get the first argumentmqr qrst sm5 5 boovfals to4 40 usercanceled userCanceledruv uQwxy wrz{ zI3|} 3.sysodlogaskrTEXT |m~~:Please input the value of q: }2 2 dtxt m 1 1 appr m 0NL(q, m, s) is selected.0/ 0 givu m ..</ {o- -0 dialogresult dialogResult xR,+ ,.ascrerr ********+*) * errn d m(() yr m' ' boovtrue o& &0 usercanceled userCanceledv l %$#%$# Z F o !" "0 usercanceled userCanceled k$, I$)! !.sysodlogaskrTEXT m$%User cancelled.  L*, n/3 102  gavu o/0 0 dialogresult dialogResult k6> I6; .sysodlogaskrTEXT m67User timed out. L<> rAF nAD 1BD  ttxt oAB 0 dialogresult dialogResult o  0arg_q lGG lGG  get the second argument0 get the second argument rGJ mGH  boovfals o 0 usercanceled userCanceled QKp rNe INc  .sysodlogaskrTEXT mNO:Please input the vaule of m:    dtxt mPS   appr bT] bTY mTWNL( oWX 0arg_q mY\(, m, s) is selected.   givu m^_< o 0 dialogresult dialogResult R .ascrerr ********  errn d m rmp mmn  boovtrue o 0 usercanceled userCanceled lqq Zq oqr 0 usercanceled userCanceled ku Iu| .sysodlogaskrTEXT muxUser cancelled. L} n 1  gavu o 0 dialogresult dialogResult k I .sysodlogaskrTEXT mUser timed out. L r n 1  ttxt o 0 dialogresult dialogResult o 0arg_m l l  get the last argument, get the last argument r m  boovfals o 0 usercanceled userCanceled Q r I .sysodlogaskrTEXT m    :Please input the value of s:     dtxt  m   appr b b b b mNL( o 0arg_q m, o 0arg_m m", s) is selected.  givu  m< o 0 dialogresult dialogResult R! .ascrerr ********!"  errn "d# #m r$% $m  boovtrue %o 0 usercanceled userCanceled&' &l'() (Z*+,- *o 0 usercanceled userCanceled +k../0 /I1 .sysodlogaskrTEXT 1m2233User cancelled.04 4L,56 5n78 71  gavu 8o 0 dialogresult dialogResult69 9k::;< ;I= .sysodlogaskrTEXT =m>>??User timed out.<@ @L -rAB AnCD C1  ttxt Do 0 dialogresult dialogResult Bo 0arg_s)EF ElFGH GlIJ I*$ write the result to the active cellJKKH write the result to the active cellHL LOMN MrOP OnQR QIS 0nlNLSTU To 0arg_qUVW Vo 0arg_mWX Xo 0arg_s Rf PnYZ Y1   DPVu Z1  1104 Nm[[XCELalisMacDiskƭq?H+Microsoft Excel)0APPLXCEL Microsoft Office 2004ƭpW:MacDisk:Applications:Microsoft Office 2004:Microsoft Excel Microsoft ExcelMacDisk2Applications/Microsoft Office 2004/Microsoft Excel/ i5/ call NL function with user specified argumentsj\\^ call NL function with user specified argumentse]^ ]l^_` _l`ab ai cd cI 0 selectlqp selectLQP dlefg ekhhij ilkl k get the first argumentlmm. get the first argumentjno nrpq pm  boovfals qo 0 usercanceled userCanceledors rQtuv trwx wIyz .sysodlogaskrTEXT ym{{||>Please input the value of rho: z}~  dtxt }m ~  appr m 2LQP(rho, c,) is selected.  givu m < xo 0 dialogresult dialogResult uR .ascrerr ********  errn d m vr m  boovtrue o 0 usercanceled userCanceleds l  Z F o ! 0 usercanceled userCanceled k$, I$) .sysodlogaskrTEXT m$%User cancelled. L*, n/3 102  gavu o/0 0 dialogresult dialogResult k6> I6; .sysodlogaskrTEXT m67User timed out. L<> rAF nAD 1BD  ttxt oAB 0 dialogresult dialogResult o 0arg_rho lGG lGG  get the second argument0 get the second argument rGJ mGH  boovfals o 0 usercanceled userCanceled QKp rNe INc .sysodlogaskrTEXT mNO:Please input the value of c:   dtxt mPS  appr bT] bTY mTWLQP( oWX 0arg_rho mY\", c) is selected.  givu m^_< o~ ~0 dialogresult dialogResult R}| }.ascrerr ********|{z { errn d myyz rmp mmnx x boovtrue ow w0 usercanceled userCanceled lqqvutvut Zq oqrs s0 usercanceled userCanceled ku Iu|rq r.sysodlogaskrTEXT muxUser cancelled.qp L}oop n 1n n gavu om m0 dialogresult dialogResultl k Ikj k.sysodlogaskrTEXT mUser timed out.ji Lhhil r n 1g g ttxt of f0 dialogresult dialogResult oe e 0arg_c ldcbdcb laa *$ write the result to the active cellH write the result to the active cell` O r n I_^ _ 0lqpLQP o] ] 0arg_rho\ o[ [ 0arg_c\^ f n 1Z Z DPVu 1Y Y 1104 mXCELalisMacDiskƭq?H+Microsoft Excel)0APPLXCEL Microsoft Office 2004ƭpW:MacDisk:Applications:Microsoft Office 2004:Microsoft Excel Microsoft ExcelMacDisk2Applications/Microsoft Office 2004/Microsoft Excel/` f60 call LQP function with user specified argumentsg` call LQP function with user specified argumentsb   lXWVXWV    lUTSUTS    lRQPRQP i  ION O0factM oL L0xMN l k r mKK oJ J0base YI !H r"# "l$GF $]%& %oE E0base &oD D0iGF #oC C0base I0i  mBB !o A A0xH'@ 'L( (o? ?0base@  computes fatorial of x)). computes fatorial of x*+ *l>=<>=<+,- ,l;:9;:9-./ .i01 0I827 80abs236 3o5 50z67 1l456 4Z7849 7?:; :o3 30z ;m22 8L< <o1 10z4 9L = =d > >o 0 00z 5'! computes the absolute value of z6??B computes the absolute value of z/@A @l/.-/.-ABC Bl,+*,+*CDE DiFG FI)H( )0 normsdist NormSDistHI' Io& &0x'( GldJKL JkdMMNO Nl%PQ% Poi Attention: The approximation is good for possative values of x but not right at all for negative values!QRR Attention: The approximation is good for possative values of x but not right at all for negative values!OST Sl$#"$#"TUV UrWX W]YZ Yl[! [^\] \m ]l^ ^a_` _la a]bc bm c1  pi  `mdd?! Zle eafg fo  0expExp glh hdi il j j^ kl ka mn mo  0x nm  lm  Xo 0zxVop orqr qmss?ͦqq ro 0pptu trvw vmxx?p: wo 0b1uyz yr{| {m}}2[ |o 0b2z~ ~r" m ?_^h o 0b3 r#& m#$#Nx o 0b4 r'* m'(?H)C o 0b5 r+4 ^+2 m+, l,1 [,1 m,- ]-0 o-. 0p o./ 0x o 0t r5< ]5: m56@ l69 a69 m67 l78 m78 o 0errorx r=` l=^ [=^ \=\ m=> ]>[ o>? 0zx l?Z [?Z [?T [?N [?H ]?B o?@ 0b1 o@A 0t ]BG oBC 0b2 lCF aCF oCD 0t mDE ]HM oHI 0b3 lIL aIL oIJ 0t mJK ]NS oNO 0b4 lOR aOR oOP 0t mPQ ]TY oTU 0b5 lUX aUX oUV 0t mVW o\] 0errorx 1  rslt Lad 1ac  rslt K`Z approximates the standard normal cumulative distribution function for random variable X. L approximates the standard normal cumulative distribution function for random variable X. E l l i I 0pivot o 0 ptelement ptElement o 0ptarrayptArray l O k l l $ warning if ptElement equals 0< warning if ptElement equals 0 Z =  n  1  DPVu 4  X117 o 0 ptelement ptElement m  k I .sysodlogaskrTEXT mDERROR: Pivot on zero is not valid!  disp m  mPTs L l l ! get the range of destArray6 get the range of destArray r! m  boovfals o 0 usercanceled userCanceled Q"G  r%<   I%:  .sysodlogaskrTEXT  m%&JPlease input the range of destArray:   dtxt m'(  appr b)2 b)0 b). b), m)*  Pivot( o*+ 0 ptelement ptElement m,-!!"", o./ 0ptarrayptArray m01##$$) is selected.%  givu %m34<  o 0 dialogresult dialogResult  R& .ascrerr ********&'  errn 'd( (m  rDG)* )mDE  boovtrue *o 0 usercanceled userCanceled+, +lHH,-. -ZHv/012 /oHI 0 usercanceled userCanceled 0kLV3345 4ILS6 .sysodlogaskrTEXT 6mLO7788User cancelled.59 9LTV1:; :nY_<= <1Z^  gavu =oYZ 0 dialogresult dialogResult;> >kbl??@A @IbiB .sysodlogaskrTEXT BmbeCCDDUser timed out.AE ELjl 2rovFG FnotHI H1pt  ttxt Ioop 0 dialogresult dialogResult Go 0 destarray destArray.JK JlwwKLM LlwwNO NGA create an invisible scratch sheet to perform the pivot operationOPP create an invisible scratch sheet to perform the pivot operationMQR QlwwST Soiset result to make new worksheet at active workbook with properties {name:"pivot_scratch", visible:false}TUUset result to make new worksheet at active workbook with properties {name:"pivot_scratch", visible:false}RVW VIwXY .sTBLXcpRnull7X117 X4w{Z  X117 Zoyz 0ptarrayptArrayY[  5134 [4~\  X117 \o 0 destarray destArrayW]^ ]l^_` _lab a initializationbcc initialization`de drfg fIh .corecnte******** hnij i2  crow j4k  X117 ko 0ptarrayptArray go 0arrrowarrRowelm lrno nIp .corecnte******** pnqr q2~ ~ ccol r4}s } X117 so| |0ptarrayptArray oo{ {0 arrcolumn arrColumnmtu trvw vnxy x1z z DPVu y4yz y X117 zox x0 ptelement ptElement wow w0 valelement valElementu{| {lvutvut|}~ }r [ \ lsr n 1q q XfrX 4p p X117 oo o0 ptelement ptElementsr lnm n 1l l XfrX 4k k X117 oj j0ptarrayptArraynm mii oh h0rterowrteRow~ r [ \ lgf n 1e e XfcX 4d d X117 oc c0 ptelement ptElementgf lba n 1` ` XfcX 4_ _ X117 o^ ^0ptarrayptArrayba m]] o\ \0 rtecolumn rteColumn l[ZY[ZY lXX LF first step, divide the row (called ptRow) with ptElement by ptElement first step, divide the row (called ptRow) with ptElement by ptElement YWV r  ^ lUT n 1S S DPVu n 4R R ccel oQ Q0j n 4P P crow oO O0rterowrteRow 4N N X117 oM M0 destarray destArrayUT lLK n 1J J DPVu 4I I X117 oH H0 ptelement ptElementLK n 1  G G DPVu n  4 F F ccel oE E0j n 4D D crow oC C0rterowrteRow 4B B X117 oA A0 destarray destArray W0j m@@ o? ?0 arrcolumn arrColumnV l>=<>=< l;; KE second step, subtract some multiple of ptRow from all the other rows second step, subtract some multiple of ptRow from all the other rows Y:9 Z|87 > o6 60i o5 50rterowrteRow l"x Y"x43 k,s r,O ],M l,<21 n,< 1:<0 0 DPVu n,: 45:/ / ccel o89. .0j n,5 405- - crow o34, ,0rterowrteRow 4,0+ + X117 o./* *0 destarray destArray21 l<L)( n<L 1JL' ' DPVu n<J 4EJ& & ccel oHI% %0 rtecolumn rteColumn n<E 4@E$ $ crow oCD# #0i 4<@" " X117 o>?! !0ptarrayptArray)( o 0temp rPs \Pb lP` nP` 1^`  DPVu nP^ 4Y^  ccel o\] 0j nPY 4TY  crow oWX 0i 4PT  X117 oRS 0ptarrayptArray o`a 0temp n 1pr  DPVu nbp 4kp  ccel ono 0j nbk   4fk  crow  oij 0i  4bf  X117  ode 0 destarray destArray 40j m%&   o&' 0 arrcolumn arrColumn3  valid rows for this step  2 valid rows for this step87 :0i m   o 0arrrowarrRow9 l mXCELalisMacDiskƭq?H+Microsoft Excel)0APPLXCEL Microsoft Office 2004ƭpW:MacDisk:Applications:Microsoft Office 2004:Microsoft Excel Microsoft ExcelMacDisk2Applications/Microsoft Office 2004/Microsoft Excel/ ZT ptElement (resp. ptArray) is the selected element (resp. array) for pivot operation ptElement (resp. ptArray) is the selected element (resp. array) for pivot operation l l i I 0nlNL o 0q o 0m o 0s l0 ! k0""#$ #l%& % It computes the expectation of the excess of D over q where q is some specified number and D has the normal distribution with mean m and standard deviation s&''P It computes the expectation of the excess of D over q where q is some specified number and D has the normal distribution with mean m and standard deviation s$() (l)* *O0+, +k/--./ .l/01 0r 23 2^ 45 4l6 6\78 7o 0q 8o 0m 5o 0s 3o 0z19: 9r (;< ;\ &=> =^ ?@ ?a AB Ao 0expExp Bl C C] DE D] FG Fm HH Go 0z Eo 0z @lI IaJK JlL L]MN Mm N1  pi  KlO O^PQ Pm Qm >]%RS Ro 0z Sl$T T\$UV Um Vl#W Wn#XY XI#Z 0 normsdist NormSDistZ[ [o 0z Yf <o 0lL:\] \L)-^ ^]),_` _o)* 0s `o*+ 0lL]a al.. ,mbbXCELalisMacDiskƭq?H+Microsoft Excel)0APPLXCEL Microsoft Office 2004ƭpW:MacDisk:Applications:Microsoft Office 2004:Microsoft Excel Microsoft ExcelMacDisk2Applications/Microsoft Office 2004/Microsoft Excel/   The Normal Loss Function.!cc4 The Normal Loss Function.de dlefg flgh hi #ij iIk 0lqpLQPklm lo 0rhomn no 0c jlRopq oORrs rkQttuv ulvwx wlyz yOI nb is the the average number of busy servers, nb = c * rho = lambda / muz{{ nb is the the average number of busy servers, nb = c * rho = lambda / mux|} |l~ ~ k is the loop variable. k is the loop variable} l   a, b are helper variables4 a, b are helper variables l r  l ] o 0c o 0rho o 0nb r  l  ]  ^  m  l  n  I  0fact o 0c f  l a o 0nb o 0c o 0a r m o 0b Y> r)9 l)7 [)7 o)* 0b ]*6 ^*2 m*+ l+1 n+1 I,1 0fact o,- 0k f+, l25 a25 o23 0nb o34 0k o 0b 0k m ! l!$ \!$ o!" 0c m"# l?? L?O l?N ]?N ^?H l?@ o?@ 0a l@G [@G o@A 0a ]AF lAD \AD mAB~~ oBC} }0rho oDE| |0b lHM{z ^HM oHIy y0rho lILxw \IL mIJvv oJKu u0rhoxw{zt lPPsrqsrqt smXCELalisMacDiskƭq?H+Microsoft Excel)0APPLXCEL Microsoft Office 2004ƭpW:MacDisk:Applications:Microsoft Office 2004:Microsoft Excel Microsoft ExcelMacDisk2Applications/Microsoft Office 2004/Microsoft Excel/ pRL The expected queue length for a M/M/c queue with a utilization rate of rhoq The expected queue length for a M/M/c queue with a utilization rate of rho pp onmlkjihgf o0 selectpivot selectPivot n0selectnlselectNL m0 selectlqp selectLQP l0fact k0abs j0 normsdist NormSDist i 0pivot h0nlNL g 0lqpLQP f.aevtoappnull****edcb e0 selectpivot selectPivotdca`_^ a0 usercanceled userCanceled `0 dialogresult dialogResult _0 arg_ptelement arg_ptElement ^0 arg_ptarray arg_ptArray]\[ZYXWVU$&:FT ] dtxt \ appr [ givuZ<Y X.sysodlogaskrTEXTWSRQ S errnRQ V gavu U ttxt T 0pivotbfEO EW X eEO j OhY,E j OhY,EOfEOaa%a% EW X eEOaj OhY,Eaj OhY,EO)l+OPPgONM P0selectnlselectNLONLKJIH L0 usercanceled userCanceled K0 dialogresult dialogResult J 0arg_q I 0arg_m H 0arg_s ~GFEDCBA@? 2>[>=< G dtxt F appr E givuD<C B.sysodlogaskrTEXTA;:9 ; errn:9 @ gavu ? ttxt >0nlNL = 1104 < DPVuMfEO EW X eEO j OhY,E j OhY,EOfEOaa%a% EW X eEOaj OhY,Eaj OhY,EOfEO$aaa%a%%a% EW X eEOaj OhY,Eaj OhY,EOa)m+*a,a,FU8d765 80 selectlqp selectLQP764321 40 usercanceled userCanceled 30 dialogresult dialogResult 2 0arg_rho 1 0arg_c{0/.-,+*)('&% 0 dtxt / appr . givu-<, +.sysodlogaskrTEXT*$#" $ errn#" ) gavu ( ttxt ' 0lqpLQP & 1104 % DPVu5fEO EW X eEO j OhY,E j OhY,EOfEOaa%a% EW X eEOaj OhY,Eaj OhY,EOa)l+*a,a,FU!  !0fact  0x 0x 0base 0ikEOkkh E[OYO1 0abs 0z 0zjY'G 0 normsdist NormSDist   0x  0x 0zx 0p 0b1 0b2 0b3 0b4 0b5 0t  0errorxdsx}  pi 0expExp   rsltekl $! l$l!'$ EOEOEOEOEOEOEOkk !EO$ EOk l$ m$ $ $  EOE 0pivot 0 ptelement ptElement 0ptarrayptArray 0 ptelement ptElement 0ptarrayptArray 0 usercanceled userCanceled 0 dialogresult dialogResult 0 destarray destArray 0arrrowarrRow 0 arrcolumn arrColumn 0 valelement valElement 0rterowrteRow 0 rtecolumn rteColumn 0j 0i 0temp!#7C  X117  DPVu  disp  mPTs .sysodlogaskrTEXT  dtxt  appr  givu<  errn  gavu  ttxt  5134 .sTBLXcpRnull7X117  crow .corecnte********  ccol  XfrX  XfcX  ccel*/,jl OhYhOfEO%%%%a EW XeEOaj OhYa,Eaj OhY a,EO*/a*/l O*/a-j EO*/a-j EO*/,EO*/a,*/a,kEO*/a,*/a,kEO6kkh */a/a/,*/,!*/a/a/,F[OYOnkkh [Ukkh */a/a/,*/a/a/, EO*/a/a/,*/a/a/,F[OYYh[OYOPU 0nlNL 0q 0m 0s 0q 0m 0s 0z 0lLbH 0expExp  pi 0 normsdist NormSDist1-!EO $l kl!$!k)k+ EO OPUj 0lqpLQP 0rho 0c 0rho 0c 0nb 0a 0b 0k 0factSO EOk)k+!$ EOjEO jkkhk)k+!$ E[OYOk !k! OPU .aevtoappnull**** k4:INz!9?X_cfjn  pi 0expExp 0 usercanceled userCanceled  btns  dflt  appr  disp  stic  givu< .sysodlogaskrTEXT 0 dialogresult dialogResult  errn  gavu  bhit 0 selectpivot selectPivot 0selectnlselectNL 0 selectlqp selectLQPEOEOfEO"mvaaa E`W XeEOaj OhY]_a,Eaj OhYE_a,a )j+Y/_a,a )j+Y_a,a )j+ Yhascr ޭ