;ň ƒKc@s—dkTdkTdkZdkZdkZdkZdagadada d„Z d„Z d„Z d„Z d „Zd „Zd fd „ƒYZdS( (s*Niiíi cCsyd}ttƒdjo|tdjodSq6nx8tdttƒƒD]!}|t|jo d}qLqLW|SdS(Nii(saslens portsTakensportNosrangesi(sportNosasi((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysIsPortAvailables cCsEd}x4no,ttƒ}|djoPntdaqWtSdS(Nii(sasIsPortAvailablesnextPortAvailable(sa((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysgetNextAvailablePorts  cCsë|ddjot|dƒ}t|ddƒ}yt|d|!ƒ}Wn |SnXyt||d|!ƒ}Wn |SnX||dSnt}t|dƒ}|djo|d|!}nyt|ƒ}Wn |}nX|SdS( Nis(s,s)ix0.01.0s i˙˙˙˙( smsgstrsfindsreidxsimidxsfloatsrebitsimbitsNonesretvalsnlidxsrecmsg2(smsgstrsreidxsimbitsrecmsg2simidxsnlidxsrebitsretval((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys getNumOrStr$s*  cCsSd}d}d}x6no.t|d|ƒ}t|d|ƒ}|djp |djoPn||d|!}d}xanoYt|d|ƒ}|djoPn|d|!t||ƒ||d}|d}q€Wt |t i ƒ}t |ƒtijo!|d|!|||d}q|d|!t|ƒ||d}qW|SdS(Niis{s}i˙˙˙˙s%(scurrIdxsnextIdxsnoExprsfindscommStrs expressionsidxtempsreprsvarListsevals__main__s__dict__ssubobjstypestypess StringType(scommStrsvarListsidxtempsnextIdxscurrIdxsnoExprssubobjs expression((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysInterpretString1;s. '!(cCsůd}d}d}d}d}xĐ|djoÂt|d|ƒ}|djo0d}||t|ƒ!}|t||ƒ}q!|||!}|t||ƒ}t|d|dƒ}|djo dGH|Sn||||d!}|d}q!W|SdS(Nsiis"i˙˙˙˙sError interpreting command ( scommStr1scommStr2scurrIdxsnextIdxs isStringDonesfindscommStrslensInterpretString1svarList(scommStrsvarLists isStringDonesnextIdxscurrIdxscommStr2scommStr1((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysInterpretStringTs*    cCsĘt|dƒ}|djo|Sn||d}t|dƒ}|djontid|ƒ} | d=t| ƒ}| |d=g}t| ddƒ}t| dd|ƒ}| d} d} yt | |d|!ƒ} Wn |SnXx$td| ƒD]}|itƒqöW|t| ƒdjo@x5td|dd ƒD]}|it| |ƒƒq;W|Sn|d}| |djo|Snt| |dƒ|}|djo yt | |d|!ƒ}Wn |SnXd} xÓtd|d d ƒD]ť}| |} t| dƒ}t| |dƒ|}t | |d|!ƒ} | | joa| } |igƒx(td|ƒD]}|| itƒqnW|| it| |dƒƒqńqńW|SqĆn t|ƒSdS( NsRETVAL:i˙˙˙˙is[s\s{}iis]i(sfindsmsgstrs retvalidxscurrIdxsressplitsarrStrslens arrStrlensarrListsnextIdxstestStrs idx1StartsatoisrangesisappendsNones getNumOrStrs idx2Startsidx1sxsk(smsgstrscurrIdxsnextIdxs idx2Startsisks retvalidxs arrStrlensarrListstestStrsxsarrStrsidx1s idx1Start((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysInterpretString3lsh          ' spdAppcBsbtZd„Zd„Zd„Zdd„Zddd„Zdd „Zgd „Zgd „Z RS( NcCst|_t|_d|_dS(Ns(sNonesselfsappSockscurrPortscmdList(sself((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys__init__Źs  cCs/|itjo|iiƒn|iƒdS(N(sselfsappSocksNonescloses CleanUpPort(sself((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys__del__ąscCswttƒdjo ganxJtdttƒdƒD]/}t||ijot|at|=q7q7Wt|_dS(Nii(slens portsTakensrangesisselfscurrPortsnextPortAvailablesNone(sselfsi((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys CleanUpPortśs  iícCs1d}|itjodSnt|ƒ}|djo=|dt|ƒd}tƒ}|dt|ƒd}nt |dƒ}|d jo=|d|!djot i dƒqÍt i |d|!ƒny)t i t i||d t|ƒgƒWn|d }|SnX|id |dƒ}||}dS( NssThis object is already in use.is Port No: s is not available sUsing Port No: s instead. s\i˙˙˙˙s-pts Could not start the application s localhost(sretstrsselfsappSocksNonesIsPortAvailablesportNosasreprsgetNextAvailablePortsrfindspathsosschdirsspawnvsP_DETACHs ConnectToApp1sretstr1(sselfspathsportNosasretstr1sretstr((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysStartAppÁs(    ) s localhostcCs|i||dƒSdS(Ni(sselfs ConnectToApp1shostnamesportNo(sselfshostnamesportNo((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys ConnectToAppŰsicCs6d}|itjodSn|djoZt|ƒ}|djo=|dt|ƒd}t ƒ}|dt|ƒd}q…nt t t ƒ|_d}d t|ƒGHxi|t jo[y|ii||fƒPWqŻ|d}d t|ƒGH|t jo |d SqqŻXqŻWti|ƒ||_|SdS( NssThis object is already in use. iis Port No: s is not available sUsing Port No: s instead. s8Attempting to connect to application on TCP/IP Port No. sConnection Attempt Number s%Failed to connect to the application (sretstrsselfsappSocksNones selectPortsIsPortAvailablesportNosasreprsgetNextAvailablePortssocketsAF_INETs SOCK_STREAMsCONNECTIONATTEMPTSsconnectshostnames portsTakensappendscurrPort(sselfshostnamesportNos selectPortsasretstr((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys ConnectToApp1Ţs6          cCs1t||ƒ}|d}|i||_tSdS(Ns;(sInterpretStringscommStrsvarListsselfscmdListsNone(sselfscommStrsvarList((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysAddCmdűs c Csŕt}|itjodSn|i||ƒt|iƒd}t |ƒ}|t t|ƒd|id|_y|ii |iƒWn|iƒdSnXd|_|iit ƒ}yt|ƒ} Wn tSnX|ii| ƒ}t|dƒ}|djo|Sn|djot|ƒ}|SnŤg}t|dƒ} || }x„td|ƒD]s}t|ddƒ} | d jo|it|ƒƒ|Sn|d| d!} |it| ƒƒ|| d}qaW|SdS( Nsapplication not initialised is ss$Error sending message from this portssRETVAL:ii˙˙˙˙(sNonesmsgstrsselfsappSocksAddCmdscommStrsvarListslenscmdListscommlensreprs commlenstrs INTBUFFSIZEssends CleanUpPortsrecvsrecmsgsatois recmsglenscounts retvalcountsInterpretString3sfinds riidxprevsrangesasridxsappendsmsg1( sselfscommStrsvarLists retvalcountsrecmsgs commlenstrsmsgstrscommlensasmsg1s riidxprevs recmsglensridx((s-C:/Users/jockbovington/Desktop\pdPythonLib.pysExecsR &       ( s__name__s __module__s__init__s__del__s CleanUpPortsStartApps ConnectToApps ConnectToApp1sAddCmdsExec(((s-C:/Users/jockbovington/Desktop\pdPythonLib.pyspdAppŤs     (sstringssocketsossres__main__stypess INTBUFFSIZEs portsTakensnextPortAvailablesCONNECTIONATTEMPTSsIsPortAvailablesgetNextAvailablePorts getNumOrStrsInterpretString1sInterpretStringsInterpretString3spdApp( sIsPortAvailablesInterpretStringsresgetNextAvailablePortspdApps__main__sInterpretString1sInterpretString3sosstypess getNumOrStr((s-C:/Users/jockbovington/Desktop\pdPythonLib.pys?s         ?