
    xZip                    .   S r SSKJr  SSKrSSKrSSKJr  SSKJ	r	J
r
JrJrJrJr  SSK7  / SQrSrS	rS
rSrSrSrSrSSSSSSS.r\\-
  \\-
  \\-   \-   \\-   \-   \\-   \-   \\-   \-   \\\-   \-   \\-   \-   \\-   \-   \\-   \\-   S.R2                  rSrS
rSrS	rSrSr Sr!Sr"SSSSSS S!S"S#.r#S$r$/ S%Qr%/ S&Qr&/ S'Qr'/ S(Qr(/ S)Qr)\%\%\&\'\'\(\(\)S*.r*/ S+Qr+0 SS,_SS-_S	S._SS/_S
S0_SS1_S2S3_S4S5_SS6_S7S8_S9S:_S;S<_S=S>_S?S@_SASB_SCSD_SSE_0 SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SZS[_S\S]_S^S__S`Sa_SbSc_SSd_SeSf_E0 SgSh_SiSj_SkSl_SmSn_SoSp_SqSr_SsSt_SuSv_SwSx_SySz_S{S|_S}S~_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_GS GS_GSGS_GSGS_GSGS_GSGS	_GS
GS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GS GS!_GS"GS#_GS$GS%_GS&GS'_GS(GS)_GS*GS+_GS,GS-_GS.GS/_GS0GS1_E0 GS2GS3_GS4GS5_GS6GS7_GS8GS9_GS:GS;_GS<GS=_GS>GS?_GS@GSA_GSBGSC_GSDGSE_GSFGSG_GSHGSI_GSJGSK_GSLGSM_GSNGSO_GSPGSQ_GSRGSS_E0 GSTGSU_GSVGSW_GSXGSY_GSZGS[_GS\GS]_GS^GS__GS`GSa_GSbGSc_GSdGSe_GSfGSg_GShGSi_GSjGSk_GSlGSm_GSnGSo_GSpGSq_GSrGSs_GStGSu_E0 GSvGSw_GSxGSy_GSzGS{_GS|GS}_GS~GS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GS GS_GSGS_GSGS_GSGS_GSGS	_GS
GS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_EGS GS!GS"GS#GS$GS%.Er,GS&GS'GS(GS)GS*GS+GS,GS-GS.GS/.	r-\." / GS0Q5      r/\0\1\0\1\0\14r2\1\0\1\0\1\04r3GS1 r4GSjGS2 jr5 GSjGS3 jr6GSjGS4 jr7GSjGS5 jr8GSkGS6 jr9 GSkGS7 jr: " GS8 GS9\;5      r< " GS: GS;\=5      r> " GS< GS=\?5      r@SrAS
rBSrCS2rDS4rESrF\G" S7SC5      u  rHrIrJrKrLrMGS> rNGS? rOGS@ rPGSA rQGSB rRGSC rSGSD rTGSE rUGSF rV\\N\!\W0rX\\N\!\N0rY\\V\!\N0rZ\A\X\\R                  S`GSG4\B\X\\R                  S`GSH4\C\X\\R                  SsGSI4\D\X\\R                  SsGSJ4\E\X\\OSGSK4\F\Z\!\R                  SLGSL4\H\Y\\PS9GSM4\I\Y\\QS9GSN4\J\Y\\RS9GSO4\K\Y\\SS9GSP4\L\Y\\TS9GSQ4\M\Y\\US9GSR40r_GSS SGSHGST4GSU SGSGGST4GSV SGSTGSW4GSX.r`GSYraGSYrbSrcS9rdGSlGSZ jre  GSmGS[ jrfGSlGS\ jrgGSnGS] jrhGSnGS^ jriGS_ rjGSkGS` jrkGSoGSa jrlGSb rmGSkGSc jrnGSoGSd jroGSe rpGSoGSf jrqGSg rrGSh rsGSi rtg(p  z9
Module for parsing/evaluating Microsoft Excel formulas.
    )print_functionN)unpack   )
BaseObject	XLRDErrorerror_text_from_codehex_char_dumpunpack_string_update_posunpack_unicode_update_pos)*)oBOOLoERRoNUMoREFoRELoSTRGoUNKdecompile_formuladump_formulaevaluate_name_formula
okind_dictrangename3drangename3drelcellnamecellnameabscolnameFMLA_TYPE_CELLFMLA_TYPE_SHAREDFMLA_TYPE_ARRAYFMLA_TYPE_COND_FMTFMLA_TYPE_DATA_VALFMLA_TYPE_NAMEOperandRef3D                ?   CELLSHAREDARRAYzCOND-FMTzDATA-VALNAME)r   r%   r&   r'   r(   r)   )r   r%      r(      r)   #   9   :   ;   ,   -         r   r   r   r   r   r   r   oMSNG)r:   r9   r   r   r%   r7   r&   r8   ,)@r:   r&   r&   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r9   r'   r&   r%   r%   r7   	   r'   r%   r7   r'   r&      r8   r8   r8   r%   r&   r>   r&   r>   r%   r%   r:   r:   r:   r:   r:   r:   r:   r:   r7   r:   r:   r:   r:   r:   r:   r:   )@r:   r8   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r9      r8   r%   r%   r7   r=   r=   r%   r7   r?   r&   r>   r>   r>   r>   r7   r&   r>   r&   r>   r7   r7   r:   r:   r:   r:   r:   r:   r:   r:   r7   r:   r:   r:   r:   r:   r:   r:   )@r:   r8   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r9   r?   r8   r%   r%   r7   r=   r=   r7   r&   r?   r&   r>   r>   r>   r>   r7   r&   r>   r&   r>   r7   r7   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   r:   )@r:   r8   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r9   r:   r:   r%   r%   r7   r=   r=   r7   r&   r/   r&   r>   r>   r>   r>   r7   r&   r>   r&   r>   r7   r7   r:   r:   r:   r:   r:   r:   r:   r:   r:            rA   rB   r:   r:   )@r:   r8   r8   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r9   r9   r:   r:   r%   r%   r7   r=   r=   r7   r&   r8   r8   r=   r>   r>   r>   r7   r8   r=   r8   r=   r7   r7   r:   r:   r:   r:   r:   r:   r:   r:   r:   r>   r>   r?   r>   r?   r:   r:   )   rB      (   r6   2   F   P   )@Unk00ExpTblAddSubMulDivPowerConcatLTLEEQGEGTNEIsectListRangeUplusUminusPercentParenMissArgStrExtendedAttrSheetEndSheetErrBoolIntNumArrayFuncFuncVarNameRefAreaMemAreaMemErrMemNoMemMemFuncRefErrAreaErrRefNAreaNMemAreaN	MemNoMemN ry   ry   ry   ry   ry   ry   ry   FuncCENameXRef3dArea3dRefErr3d	AreaErr3dry   ry   )COUNTr   rD   r&   r   VR)IFr%   r7   r&   r7   r   VRR)ISNAr   r   r%   r   r   r   )ISERRORr   r   r%   r   r   r   )SUMr   rD   r&   r   r   r   )AVERAGEr   rD   r&   r   r   r      )MINr   rD   r&   r   r   r   r>   )MAXr   rD   r&   r   r   r   )ROWr   r   r&   r   r   r   r=   )COLUMNr   r   r&   r   r   r   
   )NAr   r   r%   r   r   ry   r?   )NPVr%   rD   r&   r%   r   VR   )STDEVr   rD   r&   r   r   r      )DOLLARr   r%   r&   r   r   r      )FIXEDr%   r7   r&   r7   r   VVVr/   )SINr   r   r%   r   r   r   )COSr   r   r%   r   r   r   r0   )TANr   r   r%   r   r   r   rA   )ATANr   r   r%   r   r   r      )PIr   r   r%   r   r   ry   rC   )SQRTr   r   r%   r   r   r   rB   )EXPr   r   r%   r   r   r      )LNr   r   r%   r   r   r      )LOG10r   r   r%   r   r   r      )ABSr   r   r%   r   r   r   r@   )INTr   r   r%   r   r   r      )SIGNr   r   r%   r   r   r      )ROUNDr%   r%   r%   r%   r   VV   )LOOKUPr%   r7   r&   r%   r   r      )INDEXr%   r&   r   r&   r   RVVVrD   )REPTr%   r%   r%   r%   r   r      )MIDr7   r7   r%   r7   r   r   )LENr   r   r%   r   r   r   !   )VALUEr   r   r%   r   r   r   "   )TRUEr   r   r%   r   r   ry   r1   )FALSEr   r   r%   r   r   ry   $   )ANDr   rD   r&   r   r   r   %   )ORr   rD   r&   r   r   r   &   )NOTr   r   r%   r   r   r   '   )MODr%   r%   r%   r%   r   r   rE   )DCOUNTr7   r7   r%   r7   r   RRR)   )DSUMr7   r7   r%   r7   r   r   *   )DAVERAGEr7   r7   r%   r7   r   r   +   )DMINr7   r7   r%   r7   r   r   r5   )DMAXr7   r7   r%   r7   r   r   r6   )DSTDEVr7   r7   r%   r7   r   r   .   )VARr   rD   r&   r   r   r   /   )DVARr7   r7   r%   r7   r   r   0   )TEXTr%   r%   r%   r%   r   r   1   )LINESTr   r&   r&   r&   ARRVVrF   )TRENDr   r&   r&   r&   r   RRRV3   )LOGESTr   r&   r&   r&   r   r   4   )GROWTHr   r&   r&   r&   r   r   8   )PVr7   r8   r&   r8   r   VVVVVr2   )FVr7   r8   r&   r8   r   r   r3   )NPERr7   r8   r&   r8   r   r   r4   )PMTr7   r8   r&   r8   r   r   <   )RATEr7   r   r&   r   r   VVVVVV=   )MIRRr7   r7   r%   r7   r   RVV>   )IRRr   r%   r&   r%   r   RV)RANDr   r   r   r   r   ry   @   )MATCHr%   r7   r&   r7   r   r   A   )DATEr7   r7   r%   r7   r   r   B   )TIMEr7   r7   r%   r7   r   r   C   )DAYr   r   r%   r   r   r   D   )MONTHr   r   r%   r   r   r   E   )YEARr   r   r%   r   r   r   rG   )WEEKDAYr   r%   r&   r%   r   r   G   )HOURr   r   r%   r   r   r   H   )MINUTEr   r   r%   r   r   r   I   )SECONDr   r   r%   r   r   r   J   )NOWr   r   r   r   r   ry   K   )AREASr   r   r%   r   r   r   L   )ROWSr   r   r%   r   r   r   M   )COLUMNSr   r   r%   r   r   r   N   )OFFSETr7   r8   r&   r8   r   RVVVVR   )SEARCHr%   r7   r&   r7   r   r   S   )	TRANSPOSEr   r   r%   r   r   r   V   )TYPEr   r   r%   r   r   r   \   )	SERIESSUMr&   r&   r%   r&   r   VVVAa   )ATAN2r%   r%   r%   r%   r   r   b   )ASINr   r   r%   r   r   r   c   )ACOSr   r   r%   r   r   r   d   )CHOOSEr%   rD   r&   r%   r   r   e   )HLOOKUPr7   r&   r&   r&   r   VRRVf   )VLOOKUPr7   r&   r&   r&   r   r  i   )ISREFr   r   r%   r   r   r   m   )LOGr   r%   r&   r%   r   r   o   )CHARr   r   r%   r   r   r   p   )LOWERr   r   r%   r   r   r   q   )UPPERr   r   r%   r   r   r   r   )PROPERr   r   r%   r   r   r   s   )LEFTr   r%   r&   r%   r   r   t   )RIGHTr   r%   r&   r%   r   r   u   )EXACTr%   r%   r%   r%   r   r   v   )TRIMr   r   r%   r   r   r   w   )REPLACEr&   r&   r%   r&   r   VVVVx   )
SUBSTITUTEr7   r&   r&   r&   r   r7  y   )CODEr   r   r%   r   r   r   |   )FINDr%   r7   r&   r7   r   r   }   )r+   r   r%   r   r%   r   r   ~   )ISERRr   r   r%   r   r   r      )ISTEXTr   r   r%   r   r   r      )ISNUMBERr   r   r%   r   r   r      )ISBLANKr   r   r%   r   r   r      )Tr   r   r%   r   r   r      )Nr   r   r%   r   r   r      )	DATEVALUEr   r   r%   r   r   r      )	TIMEVALUEr   r   r%   r   r   r      )SLNr7   r7   r%   r7   r   r      )SYDr&   r&   r%   r&   r   r7     )DDBr&   r8   r&   r8   r   r      )INDIRECTr   r%   r   r%   r   r      )CLEANr   r   r%   r   r   r      )MDETERMr   r   r%   r   r   r      )MINVERSEr   r   r%   r   r   r      )MMULTr%   r%   r%   r%   r   AA   )IPMTr&   r   r&   r   r   r      )PPMTr&   r   r&   r   r   r      )COUNTAr   rD   r&   r   r   r      )PRODUCTr   rD   r&   r   r   r      )FACTr   r   r%   r   r   r      )DPRODUCTr7   r7   r%   r7   r   r      )	ISNONTEXTr   r   r%   r   r   r      )STDEVPr   rD   r&   r   r   r      )VARPr   rD   r&   r   r   r      )DSTDEVPr7   r7   r%   r7   r   r      )DVARPr7   r7   r%   r7   r   r      )TRUNCr   r%   r&   r%   r   r      )	ISLOGICALr   r   r%   r   r   r      )DCOUNTAr7   r7   r%   r7   r   r      )USDOLLARr   r%   r&   r%   r   r      )FINDBr%   r7   r&   r7   r   r      )SEARCHBr%   r7   r&   r7   r   r      )REPLACEBr&   r&   r%   r&   r   r7     )LEFTBr   r%   r&   r%   r   r      )RIGHTBr   r%   r&   r%   r   r      )MIDBr7   r7   r%   r7   r   r      )LENBr   r   r%   r   r   r      )ROUNDUPr%   r%   r%   r%   r   r      )	ROUNDDOWNr%   r%   r%   r%   r   r      )ASCr   r   r%   r   r   r      )DBCSr   r   r%   r   r   r      )RANKr%   r7   r&   r7   r   VRV   )ADDRESSr%   r8   r&   r8   r   r      )DAYS360r%   r7   r&   r7   r   r      )TODAYr   r   r   r   r   ry      )VDBr8   r>   r&   r>   r   VVVVVVV   )MEDIANr   rD   r&   r   r   r      )
SUMPRODUCTr   rD   r&   r   r   r      )SINHr   r   r%   r   r   r      )COSHr   r   r%   r   r   r      )TANHr   r   r%   r   r   r      )ASINHr   r   r%   r   r   r      )ACOSHr   r   r%   r   r   r      )ATANHr   r   r%   r   r   r      )DGETr7   r7   r%   r7   r   r      )INFOr   r   r%   r   r   r      )DBr&   r8   r&   r8   r   r      )	FREQUENCYr%   r%   r%   r%   r   RRi  )z
ERROR.TYPEr   r   r%   r   r   r   i  )AVEDEVr   rD   r&   r   r   r   i  )BETADISTr7   r8   r&   r   r   r   i  )GAMMALNr   r   r%   r   r   r   i  )BETAINVr7   r8   r&   r   r   r   i  )	BINOMDISTr&   r&   r%   r&   r   r7  i  )CHIDISTr%   r%   r%   r%   r   r   i  )CHIINVr%   r%   r%   r%   r   r   i  )COMBINr%   r%   r%   r%   r   r   i  )
CONFIDENCEr7   r7   r%   r7   r   r   i  )	CRITBINOMr7   r7   r%   r7   r   r   i  )EVENr   r   r%   r   r   r   i  )	EXPONDISTr7   r7   r%   r7   r   r   i  )FDISTr7   r7   r%   r7   r   r   i  )FINVr7   r7   r%   r7   r   r   i  )FISHERr   r   r%   r   r   r   i  )	FISHERINVr   r   r%   r   r   r   i  )FLOORr%   r%   r%   r%   r   r   i  )	GAMMADISTr&   r&   r%   r&   r   r7  i  )GAMMAINVr7   r7   r%   r7   r   r   i   )CEILINGr%   r%   r%   r%   r   r   i!  )HYPGEOMDISTr&   r&   r%   r&   r   r7  i"  )LOGNORMDISTr7   r7   r%   r7   r   r   i#  )LOGINVr7   r7   r%   r7   r   r   i$  )NEGBINOMDISTr7   r7   r%   r7   r   r   i%  )NORMDISTr&   r&   r%   r&   r   r7  i&  )	NORMSDISTr   r   r%   r   r   r   i'  )NORMINVr7   r7   r%   r7   r   r   i(  )NORMSINVr   r   r%   r   r   r   i)  )STANDARDIZEr7   r7   r%   r7   r   r   i*  )ODDr   r   r%   r   r   r   i+  )PERMUTr%   r%   r%   r%   r   r   i,  )POISSONr7   r7   r%   r7   r   r   i-  )TDISTr7   r7   r%   r7   r   r   i.  )WEIBULLr&   r&   r%   r&   r   r7  i/  )SUMXMY2r%   r%   r%   r%   r   r_  i0  )SUMX2MY2r%   r%   r%   r%   r   r_  i1  )SUMX2PY2r%   r%   r%   r%   r   r_  i2  )CHITESTr%   r%   r%   r%   r   r_  i3  )CORRELr%   r%   r%   r%   r   r_  i4  )COVARr%   r%   r%   r%   r   r_  i5  )FORECASTr7   r7   r%   r7   r   VAAi6  )FTESTr%   r%   r%   r%   r   r_  i7  )	INTERCEPTr%   r%   r%   r%   r   r_  i8  )PEARSONr%   r%   r%   r%   r   r_  i9  )RSQr%   r%   r%   r%   r   r_  i:  )STEYXr%   r%   r%   r%   r   r_  i;  )SLOPEr%   r%   r%   r%   r   r_  i<  )TTESTr&   r&   r%   r&   r   AAVVi=  )PROBr7   r&   r&   r7   r   AAVi>  )DEVSQr   rD   r&   r   r   r   i?  )GEOMEANr   rD   r&   r   r   r   i@  )HARMEANr   rD   r&   r   r   r   iA  )SUMSQr   rD   r&   r   r   r   iB  )KURTr   rD   r&   r   r   r   iC  )SKEWr   rD   r&   r   r   r   iD  )ZTESTr%   r7   r&   r%   r   r   iE  )LARGEr%   r%   r%   r%   r   r   iF  )SMALLr%   r%   r%   r%   r   r   iG  )QUARTILEr%   r%   r%   r%   r   r   iH  )
PERCENTILEr%   r%   r%   r%   r   r   iI  )PERCENTRANKr%   r7   r&   r%   r   r   iJ  )MODEr   rD   r&   r   r   r   iK  )TRIMMEANr%   r%   r%   r%   r   r   iL  )TINVr%   r%   r%   r%   r   r   iP  )CONCATENATEr   rD   r&   r   r   r   iQ  )POWERr%   r%   r%   r%   r   r   iV  )RADIANSr   r   r%   r   r   r   iW  )DEGREESr   r   r%   r   r   r   iX  )SUBTOTALr%   rD   r&   r%   r   r   iY  )SUMIFr%   r7   r&   r7   r   RVRiZ  )COUNTIFr%   r%   r%   r%   r   r   i[  )
COUNTBLANKr   r   r%   r   r   r   i^  )ISPMTr&   r&   r%   r&   r   r7  i_  )DATEDIFr7   r7   r%   r7   r   r   i`  )
DATESTRINGr   r   r%   r   r   r   ia  )NUMBERSTRINGr%   r%   r%   r%   r   r   ib  )ROMANr   r%   r&   r%   r   r   if  )GETPIVOTDATAr%   r%   r%   r%   r   r   ig  )	HYPERLINKr   r%   r&   r%   r   r   ih  )PHONETICr   r   r%   r   r   r   ii  )AVERAGEAr   rD   r&   r   r   r   ij  )MAXAr   rD   r&   r   r   r   ik  )MINAr   rD   r&   r   r   r   il  )STDEVPAr   rD   r&   r   r   r   im  )VARPAr   rD   r&   r   r   r   in  )STDEVAr   rD   r&   r   r   r   io  )VARAr   rD   r&   r   r   r   ip  )BAHTTEXTr   r   r%   r   r   r   iq  )THAIDAYOFWEEKr   r   r%   r   r   r   ir  )	THAIDIGITr   r   r%   r   r   r   is  )THAIMONTHOFYEARr   r   r%   r   r   r   it  )THAINUMSOUNDr   r   r%   r   r   r   iu  )THAINUMSTRINGr   r   r%   r   r   r   iv  )THAISTRINGLENGTHr   r   r%   r   r   r   )ISTHAIDIGITr   r   r%   r   r   r   )ROUNDBAHTDOWNr   r   r%   r   r   r   )ROUNDBAHTUPr   r   r%   r   r   r   )THAIYEARr   r   r%   r   r   r   )RTDr%   r8   r&   r   r   r   )iw  ix  iy  iz  i{  zSkip??VolatileIfChooseSkipSumAssignSpaceSpaceVolatile)	r   r   r%   r&   r'   r(   r)   r   r   )r>   r'   r   r?   r   r   r   c                 b    [        S [        XR                  UR                  5       5       5      $ )Nc              3   8   #    U  H  u  pnU" X#5      v   M     g 7fN ).0funcnumanumbs       f/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/xlrd/formula.py	<genexpr>do_box_funcs.<locals>.<genexpr>  s$       HD 	T H   )tuplezipcoords)	box_funcsboxaboxbs      r0  do_box_funcsr:    s+      #I{{DKK H      c                     US-	  S-  nUS-	  S-  nU nUS-  nU(       a%  U(       a  US:  a  US-  nU(       a  US:  a  US-  nOU(       a  Xs-  nU(       a  X-  nXxXV4$ )	Nr/   r   r            rC     r+  	rowvalcolvalreldeltabrowxbcolxrow_relcol_relrowxcolxs	            r0  adjust_cell_addr_biff8rK    ss    |q G|q GDD=Dtu}EMDts{CKDMDMDw''r;  c                     U S-	  S-  nU S-	  S-  nU S-  nUnU(       a%  U(       a  US:  a  US-  nU(       a  US:  a  US-  nOU(       a  Xs-  nU(       a  X-  nXxXV4$ )	Nr/   r   r   i?  i    i @  rC  r@  r+  rA  s	            r0  adjust_cell_addr_biff_le7rM    ss    |q G|q GF?DDtt|EMDts{CKDMDMDw''r;  c                     US:  a   [        SXUS-    5      u  pg[        XgX4U5      $ [        SXUS-    5      u  pg[        XgX4U5      $ )NrH   <HHr&   z<HBr7   r   rK  rM  )dataposbvrD  rE  rF  rB  rC  s           r0  get_cell_addrrT    sX    	RxtA7%fhuMMtA7(HU< 	<r;  c                     US:  a1  [        SXUS-    5      u  pgp[        XhX4U5      n
[        XyX4U5      nX4$ [        SXUS-    5      u  pgp[        XhX4U5      n
[        XyX4U5      nX4$ )NrH   z<HHHHr'   z<HHBBr   rP  )rQ  rR  rS  rD  rE  rF  row1valrow2valcol1valcol2valres1res2s               r0  get_cell_range_addrr\    s    	Rx-3GTc!e_-M*' &gO%gOz-3GTc!e_-M*' )hu>(hu>zr;  c                 l    U R                   U   nUu  pEnX@R
                  :X  a2  U(       a  [        SX4-  U R                  S9  USs=:X  a  U:X  d   e   egX@R                  :w  a   U(       a  [        SX4-  U R                  S9  gUSs=:X  a  U:X  a#  O  O U(       a  [        S	X4-  U R                  S9  g
USs=:X  a  U:X  a#  O  O U(       a  [        SU4-  U R                  S9  g[        U R                  5      nSUs=::  a  Us=::  a  U:  d9  O  U(       a/  [        SX4-  U R                  S9  [        SU-  U R                  S9  gU R                  U   nU R                  U   n	SUs=::  a  U	::  d   g  gX4$ ! [         a/    [        SU[        U R                   5      4-  U R                  S9   gf = f)Nz:!!! get_externsheet_local_range: refx=%d, not in range(%d)file)r`  z5/// get_externsheet_local_range(refx=%d) -> addins %ri  )ra  z7/// get_externsheet_local_range(refx=%d) -> external %rrc  z@/// get_externsheet_local_range(refx=%d) -> unspecified sheet %rr9   r9   i  z</// get_externsheet_local_range(refx=%d) -> deleted sheet(s)r:   r:   r   z./// get_externsheet_local_range(refx=%d) -> %r%--- first/last sheet not in range(%d))rg  ri  )_externsheet_info
IndexErrorprintlenlogfile_supbook_addins_inx_supbook_locals_inx_all_sheets_map)
bkrefxblahinforef_recordxref_first_sheetxref_last_sheetxnsheetsxlrd_sheetx1xlrd_sheetx2s
             r0  get_externsheet_local_ranger|    s   ##D)
 6:2K?,,,ITLX_a_i_ij6<_<<<<<,,,KtlZacakakl64_4TX\Wccjljtjtu64_4PTXS[[bdblblm"$$%G =O=g=Bd\QXZXbXbc9GC"**U%%&67L%%o6L,, -%%A  JS--./068jj	Bs   E: :6F32F3c                    US:  a  U(       a  [        SU-  U R                  S9  gUS:X  a  US:X  a  g[        U R                  5      nSUs=::  a  Us=::  a  U:  d:  O  U(       a0  [        SXU4-  U R                  S9  [        SU-  U R                  S9  g	U R                  U   nU R                  U   nSUs=::  a  U::  d   g
  g
Xg4$ )Nr   z?/// get_externsheet_local_range_b57(raw_extshtx=%d) -> externalr^  rb  r9   re  z6/// get_externsheet_local_range_b57(%d, %d, %d) -> ???rf  )r~  rh  )rl  rn  rm  rq  )rr  raw_extshtxrw  rx  rt  ry  rz  r{  s           r0  get_externsheet_local_range_b57r    s    QSVaahjhrhrs2/R"7"$$%G =O=g=J/BCIKU9GC"**U%%&67L%%o6L,, -%%r;  c                       \ rS rSrSrg)FormulaErrori  r+  N)__name__
__module____qualname____firstlineno____static_attributes__r+  r;  r0  r  r    s    r;  r  c                   4    \ rS rSrSrSr\rSrSS jr	S r
Srg)	r#   i  a  
Used in evaluating formulas.
The following table describes the kinds and how their values
are represented.

.. raw:: html

    <table border="1" cellpadding="7">
    <tr>
    <th>Kind symbol</th>
    <th>Kind number</th>
    <th>Value representation</th>
    </tr>
    <tr>
    <td>oBOOL</td>
    <td align="center">3</td>
    <td>integer: 0 => False; 1 => True</td>
    </tr>
    <tr>
    <td>oERR</td>
    <td align="center">4</td>
    <td>None, or an int error code (same as XL_CELL_ERROR in the Cell class).
    </td>
    </tr>
    <tr>
    <td>oMSNG</td>
    <td align="center">5</td>
    <td>Used by Excel as a placeholder for a missing (not supplied) function
    argument. Should *not* appear as a final formula result. Value is None.</td>
    </tr>
    <tr>
    <td>oNUM</td>
    <td align="center">2</td>
    <td>A float. Note that there is no way of distinguishing dates.</td>
    </tr>
    <tr>
    <td>oREF</td>
    <td align="center">-1</td>
    <td>The value is either None or a non-empty list of
    absolute Ref3D instances.<br>
    </td>
    </tr>
    <tr>
    <td>oREL</td>
    <td align="center">-2</td>
    <td>The value is None or a non-empty list of
    fully or partially relative Ref3D instances.
    </td>
    </tr>
    <tr>
    <td>oSTRG</td>
    <td align="center">1</td>
    <td>A Unicode string.</td>
    </tr>
    <tr>
    <td>oUNK</td>
    <td align="center">0</td>
    <td>The kind is unknown or ambiguous. The value is None</td>
    </tr>
    </table>
N?c                 @    Ub  Xl         Ub  X l        X0l        X@l        g r*  )kindvalueranktext)selfakindavaluearankatexts        r0  __init__Operand.__init__b  s$    IJ	 	r;  c                     [         R                  U R                  S5      nSU< SU R                  < SU R                  < S3$ )Nz?Unknown kind?zOperand(kind=z, value=z, text=))r   getr  r  r  )r  	kind_texts     r0  __repr__Operand.__repr__l  s0    NN499.>?	$**dii1 	1r;  )r  r  r  r  )NNr   r  )r  r  r  r  __doc__r  r   r  r  r  r  r  r+  r;  r0  r#   r#     s'    <@ E D D1r;  r#   c                   $    \ rS rSrSrS rS rSrg)r$   ir  am  
Represents an absolute or relative 3-dimensional reference to a box
of one or more cells.

The ``coords`` attribute is a tuple of the form::

  (shtxlo, shtxhi, rowxlo, rowxhi, colxlo, colxhi)

where ``0 <= thingxlo <= thingx < thingxhi``.

.. note::
  It is quite possible to have ``thingx > nthings``; for example
  ``Print_Titles`` could have ``colxhi == 256`` and/or ``rowxhi == 65536``
  irrespective of how many columns/rows are actually used in the worksheet.
  The caller will need to decide how to handle this situation.
  Keyword: :class:`IndexError` :-)

The components of the coords attribute are also available as individual
attributes: ``shtxlo``, ``shtxhi``, ``rowxlo``, ``rowxhi``, ``colxlo``, and
``colxhi``.

The ``relflags`` attribute is a 6-tuple of flags which indicate whether
the corresponding (sheet|row|col)(lo|hi) is relative (1) or absolute (0).

.. note::
  There is necessarily no information available as to what cell(s)
  the reference could possibly be relative to. The caller must decide what
  if any use to make of ``oREL`` operands.

.. note:
  A partially relative reference may well be a typo.
  For example, define name ``A1Z10`` as ``$a$1:$z10`` (missing ``$`` after
  ``z``) while the cursor is on cell ``Sheet3!A27``.

  The resulting :class:`Ref3D` instance will have
  ``coords = (2, 3, 0, -16, 0, 26)``
  and ``relflags = (0, 0, 0, 1, 0, 0).<br>

  So far, only one possibility of a sheet-relative component in
  a reference has been noticed: a 2D reference located in the
  "current sheet".

  This will appear as ``coords = (0, 1, ...)`` and
  ``relflags = (1, 1, ...)``.

.. versionadded:: 0.6.0
c                     USS U l         USS U l        U R                  (       d  SU l        U R                   u  U l        U l        U l        U l        U l        U l        g )Nr   r   r   r   r   r   r   r   r   )r6  relflagsshtxloshtxhirowxlorowxhicolxlocolxhi)r  atuples     r0  r  Ref3D.__init__  sR    Qqkq}}.DM %)KK	"dkT[T[r;  c                     U R                   (       a  U R                   S:X  a  SU R                  < S3$ SU R                  < SU R                   < S3$ )Nr  zRef3D(coords=r  z, relflags=)r  r6  )r  s    r0  r  Ref3D.__repr__  sB    }}1C C)-77 !D ;;/ /r;  )r  r  r6  r  r  r  r  r  N)r  r  r  r  r  r  r  r  r+  r;  r0  r$   r$   r  s    .`0/r;  r$   c                     U $ r*  r+  xs    r0  nopr    s    Hr;  c                 
    X-  $ r*  r+  r  ys     r0  _opr_powr    s    16Mr;  c                 
    X:  $ r*  r+  r  s     r0  _opr_ltr        !&=r;  c                 
    X:*  $ r*  r+  r  s     r0  _opr_ler    r  r;  c                 
    X:H  $ r*  r+  r  s     r0  _opr_eqr    r  r;  c                 
    X:  $ r*  r+  r  s     r0  _opr_ger    r  r;  c                 
    X:  $ r*  r+  r  s     r0  _opr_gtr    r  r;  c                 
    X:g  $ r*  r+  r  s     r0  _opr_ner    r  r;  c                 R    [        U 5      nUR                  S5      (       a  USS nU$ )zF
Attempt to emulate Excel's default conversion from number to string.
z.0Nr:   )strendswith)numss     r0  num2strgr    s,     	CAzz$crFHr;  +-r   /^&<z<==z>=>z<>c                     U * $ r*  r+  r  s    r0  <lambda>r    s    aRr;  ry   c                     U $ r*  r+  r  s    r0  r  r    s    Qr;  c                     U S-  $ )Ng      Y@r+  r  s    r0  r  r    s    QYr;  %)r   rA   rC   Z   c                 f7   U[         :  a  SnUR                  nUR                  nU R                  nSnU(       a9  [	        SX!R
                  XgXT4-  U R                  S9  [        USX`R                  S9  U[        :  a  [        S5      e[        U   n	Sn
/ nSnSnSn[        [        S 5      n[        [        S 5      nUR                  nS nS nS	 nUS:X  a  U/nSU
s=::  a  U:  Ga,  O  GO([        XZ   5      nUS
-  nUS-  S-	  nU(       a  US-   nOUn[         U   nU	U   nU(       a1  [	        SU
UUUUU4-  U R                  S9  [	        SXR                  S9  US:X  a  SUUU4-  n[#        U5      eU(       G
d  SUs=::  a  S::  a  O  OU" UU5        G
OSUs=::  a  S::  a  O  OU" UU5        G
OUS:X  Ga  U(       a  [	        SXR                  S9  [%        U5      S:  d   eUR'                  5       nUR'                  5       nSnSnSR)                  SS UR*                  U:   UR,                  SS UR*                  U:   USS UR*                  U:   UR,                  SS UR*                  U:   /5      n [        [.        5      n!U U!l        UR0                  [        :X  d  UR0                  [        :X  a  [        U!l        GOUR0                  [        :X  d  UR0                  [        :X  a  GOUR0                  [.        s=:X  a  UR0                  :X  a  O  OUR2                  b  UR2                  br  [%        UR2                  5      S:X  d   e[%        UR2                  5      S:X  d   e[5        [6        UR2                  S   UR2                  S   5      n"[9        U"5      /U!l        OUR0                  [:        s=:X  a  UR0                  :X  a  O  O[:        U!l        UR2                  b  UR2                  b  [%        UR2                  5      S:X  d   e[%        UR2                  5      S:X  d   e[5        [6        UR2                  S   UR2                  S   5      n"UR2                  S   R<                  n#UR2                  S   R<                  n$U#U$:X  a  [9        U"U#-   5      /U!l        O U" U!5        U(       a  [	        SXR                  S9  GOUS:X  Ga	  U(       a  [	        SXR                  S9  [%        U5      S:  d   eUR'                  5       nUR'                  5       nSnSnSR)                  SS UR*                  U:   UR,                  SS UR*                  U:   USS UR*                  U:   UR,                  SS UR*                  U:   /5      n [        [.        S UU 5      n!UR0                  [        :X  d  UR0                  [        :X  a  [        U!l        OUR0                  [.        [:        4;   a  UR0                  [.        [:        4;   a  [.        U!l        UR0                  [:        :X  d  UR0                  [:        :X  a  [:        U!l        UR2                  ba  UR2                  bT  [%        UR2                  5      S:  d   e[%        UR2                  5      S:X  d   eUR2                  UR2                  -   U!l        O U" U!5        U(       a  [	        S XR                  S9  GOUS!:X  Ga  U(       a  [	        S"XR                  S9  [%        U5      S:  d   eUR'                  5       nUR'                  5       nS#nSnSR)                  SS UR*                  U:   UR,                  SS UR*                  U:   USS UR*                  U:   UR,                  SS UR*                  U:   /5      n [        [.        S UU 5      n!UR0                  [        :X  d  UR0                  [        :X  a  [        n!GOUR0                  [.        s=:X  a  UR0                  :X  a  O  OUR2                  b  UR2                  br  [%        UR2                  5      S:X  d   e[%        UR2                  5      S:X  d   e[5        [>        UR2                  S   UR2                  S   5      n"[9        U"5      /U!l        OUR0                  [:        s=:X  a  UR0                  :X  a  O  O[:        U!l        UR2                  b  UR2                  b  [%        UR2                  5      S:X  d   e[%        UR2                  5      S:X  d   e[5        [>        UR2                  S   UR2                  S   5      n"UR2                  S   R<                  n#UR2                  S   R<                  n$U#U$:X  a  [9        U"U#-   5      /U!l        O U" U!5        U(       a  [	        S$XR                  S9  GOS%Us=::  a  S&::  a  O  OU" U[@        U5        GOUS':X  a  GOUS(:X  a  U" [        [B        S [D        S5      5        GO]US):X  a  US*::  a  [G        XZS-   U RH                  SS+9u  n%n&O[K        XZS-   SS+9u  n%n&U&U
-
  nU(       a  [	        S,UU%4-  U R                  S9  S-U%RM                  S-S.5      -   S--   n'U" [        [N        U%[D        U'5      5        GOUS/:X  a  US:  d   e[#        S05      eUS1:X  a  [Q        S2XZS-   U
S3-    5      u  n(n)[R        RU                  U(S45      n*U(S3:X  a	  U)S-  S5-   nOdU(S:X  a\  S3nU(       a  [	        S6XR                  S9  [%        U5      S:  d   eUS7   nS8UR,                  -  n [        [@        S [V        U 5      US7'   OS3nU(       a  [	        S9U(U*UU)4-  U R                  S9  OS:Us=::  a  S;::  a  O  OUS<:  d   e[#        S=5      eS>Us=::  a  S
::  a  O  OUS>-
  n+/ S?QU+   n,[        [X        [@        [@        /U+   n-[Q        S@SAU+   -   XZS-   U
S-   U,-    5      u  n.U+S:X  a  [[        U.5      n.[]        U.5      n'O-U+S:X  a  []        U.5      n'OU+S:X  a  SBU.   n'OS-[^        U.   -   S--   n'U" [        U-U.[D        U'5      5        O[#        SCU-  5      eUS::  a  [#        SDU-  5      eU
U-  n
GM  US:X  a
  U" U5        GOlUS:X  Ga  S[a        USE:  5      -   n,[Q        S@SFU,   -   XZS-   U
S-   U,-    5      S   n/[b        RU                  U/S 5      n0U0(       d!  [	        SGU/-  U R                  S9  U" U5        GOU0S S u  n1n2U(       a  [	        SHU/U1U24-  U R                  S9  [%        U5      U2:  d   eU2(       a1  [d        R)                  SI UU2* S   5       5      n3U1< SU3< S3n UU2* S 2	 OU1SJ-   n [        [        S [V        U 5      n!U" U!5        GO_US:X  GaC  S[a        USE:  5      -   n,[Q        SKSFU,   -   XZS-   U
S-   U,-    5      u  n2n/[g        U2SL5      u  n4n2[g        U/SM5      u  n5n/U(       a  [	        SNU/U2U5U44-  U R                  S9  [b        RU                  U/S 5      n0U0(       d!  [	        SOU/-  U R                  S9  U" U5        GOU0S S u  n1n6n7U(       a  [	        SPU1U6U74-  U R                  S9  U6U2s=::  a  U7::  d   e   e[%        U5      U2:  d   e[%        U5      U2:  d   e[d        R)                  SQ UU2* S   5       5      n3U1< SU3< S3n [        [        S [V        U 5      n!U/S:X  Ga>  UU2*    n8U8R0                  [@        [X        4;  a1  U(       a(  U8R0                  [        :w  a  [	        SRU R                  S9  GOU8R2                  SS;  a*  U(       a!  U8R2                  b  [	        STU R                  S9  GOTU2S:X  a%  U8R2                  (       d  [X        SsU!l        U!l        OlU2* S-   [a        U8R2                  5      -
  n9UU9   n:U:R0                  [B        :X  a  [@        SsU!l        U!l        O#U:R0                  U:R2                  sU!l        U!l        U(       a  [	        SUU R                  S9  OU/SV:X  a  UU2*    n8U8R0                  [@        :X  a  SU8R2                  s=::  a  U2:  aj  O  OgUU2* [a        U8R2                  5      -      n:U:R0                  [B        :X  a  [@        SsU!l        U!l        O#U:R0                  U:R2                  sU!l        U!l        UU2* S 2	 U" U!5        G
OUS:X  Ga  [Q        SWXZS-   U
S-    5      S   S-
  n;U(       a  [	        SXU;-  U R                  S9  U Rh                  U;   n<U<Rj                  (       d  [m        U U<U;X4S-   5        U<Rn                  (       d"  U<Rp                  (       d  U<Rr                  (       a  U(       a  U<Ru                  U R                  SYSZS[9  [        [        S 5      n!U=(       d2    U<Rn                  =(       d    U<Rp                  =(       d    U<Rr                  nU=(       d    U<Rv                  nO>[%        U<Rx                  5      S:X  d   e[z        R|                  " U<Rx                  S   5      n![D        U!l        U<R~                  S7:X  a  U<R
                  U!l        O/U R                  U<R~                     < S\U<R
                  < 3U!l        U(       a(  [	        S][        U!R,                  5      U R                  S9  U" U!5        GOUS3:X  a  [        XZS-   Xx5      n!U(       a  [	        S^U!U R                  S9  U!u  n=n>n?n@S=nAnBSnUAUBS-   U=U=S-   U>U>S-   4n"U(       a  [	        S_U"U R                  S9  [        [        S 5      n!US:X  a%  SSU?U?W@U@4nC[        [:        [9        U"UC-   5      /5      n!U" U!5        GOlUS:X  a  [        XZS-   Xx5      u  nDnEU(       a  [	        S^WDWEU R                  S9  WDu  nFnGnHnIWEu  nJnKnLnMS=nAnBSnUAUBS-   UFUJS-   UGUKS-   4n"U(       a  [	        S_U"U R                  S9  [        [        S 5      n!US:X  a%  SSWHWLWIWM4nC[        [:        [9        U"UC-   5      /5      n!U" U!5        GOUS5:X  a  U" UU5        GOUS`:X  a7  [Q        SWXZS-   U
S-    5      S   n,U(       a  [	        SaU,-  U R                  S9  GOcUSb:X  a  U" UU5        GORUSc:X  a  U" UU5        GOAUS::X  Gay  US:  a7  [        XZS-   Xx5      n![Q        SWXZS-   U
S-    5      S   nN[        U UNU5      u  nAnBOW[        XZS-   Xx5      n![Q        SdXZS-   U
S-    5      u  nOnPnQU(       a  [	        SeWOWPWQU R                  S9  [        U WOWPWQU5      u  nAnBU!u  n=n>n?n@U?=(       d    W@nRU=(       d    WRnWAWBS-   U=U=S-   U>U>S-   4n"UUAS7:  -  nU(       a  [	        S_U"U R                  S9  [        [        S 5      n!WR(       a2  SSU?U?W@U@4nC[9        U"UC-   5      nS[:        U!l        [        U USSSf9U!l        O'[9        U"5      nS[.        U!l        [        U US5      U!l        [D        U!l        US:X  a  WS/U!l        U" U!5        GOUS;:X  Ga  US:  a:  [        XZS-   Xx5      u  nDnE[Q        SWXZS-   U
S-    5      S   nN[        U UNU5      u  nAnBOZ[        XZS-   Xx5      u  nDnE[Q        SdXZS-   U
S-    5      u  nOnPnQU(       a  [	        SgWOWPWQU R                  S9  [        U WOWPWQU5      u  nAnBUWAS7:  -  nWDu  nFnGnHnIWEu  nJnKnLnMUH=(       d    WI=(       d    WL=(       d    WMnRU=(       d    WRnWAWBS-   WFWJS-   WGWKS-   4n"U(       a  [	        S_U"U R                  S9  [        [        S 5      n!WR(       a2  SSWHWLWIWM4nC[9        U"UC-   5      nS[:        U!l        [        U USSSf9U!l        O'[9        U"5      nS[.        U!l        [        U US5      U!l        [D        U!l        US:X  a  WS/U!l        U" U!5        GO"US1:X  Ga  SnT[        [        S 5      n!US:  a  [Q        ShXZS-   U
S-    5      u  nNn;U;S-  n;UNnUO9[Q        SiXZS-   U
Sc-    5      u  nNn;U;S-  n;UNnUUNS:  a  WNS-  nNOWNS:  a  WN* S-
  nNOSnTU(       a  [	        SjWUWNU;WT4-  U R                  S9  U;U:X  a  U(       a  [	        SkU R                  S9  S=nTnWT(       dC  US:  a  [        U WNU5      u  nAnBO,WUS:  a  Slu  nAnBO U R                  WN   nVUVS3:X  a  Smu  nAnBOSnu  nAnBWT(       d  WAS7:  a  SoU;WU4-  n [        [        S [D        U 5      n!GOU Rh                  U;   n<U<Rj                  (       d  [m        U U<U;X4S-   5        U<Rn                  (       d"  U<Rp                  (       d  U<Rr                  (       a  U(       a  U<Ru                  U R                  SpSqS[9  [        [        S 5      n!U=(       d2    U<Rn                  =(       d    U<Rp                  =(       d    U<Rr                  nU=(       d    U<Rv                  nO>[%        U<Rx                  5      S:X  d   e[z        R|                  " U<Rx                  S   5      n![D        U!l        U<R~                  S7:X  a  U<R
                  U!l        O/U R                  U<R~                     < S\U<R
                  < 3U!l        U(       a(  [	        Sr[        U!R,                  5      U R                  S9  U" U!5        O5U[        ;   a  SnU" U5        O U(       a  [	        SsU-   U R                  S9  SnUS::  a  [#        St5      eU
U-  n
SU
s=::  a	  U:  a  GM&  O  U(       nU(       aR  [        U R                  SuXL(       X5        [%        U5      S:  a  [	        SvU R                  S9  [	        U R                  S9  Xl<        [%        U5      S:w  a  S UlK        O
US   UlK        Xl;        Xl9        XlL        SUl5        g )wNr   z1::: evaluate_name_formula %r %r %d %d %r level=%dr^  r   foutz-Excessive indirect references in NAME formulac                    [        U5      S:  d   eUR                  5       nUR                  5       n[        U    u  pEpgnSR                  SS UR                  U:   UR
                  SS UR                  U:   USS UR                  U:   UR
                  SS UR                  U:   /5      n	[        US Xy5      n
 XBR                     nXCR                     nUR                  b  UR                  c  UR                  U
5        g U" UR                  5      nU" UR                  5      nU" X5      nU[        :X  a  U(       a  SOSnXl
        UR                  U
5        g ! [         a    UR                  U
5         g f = f)Nr%   ry   (r  r   r   )rm  popbinop_rulesjoinr  r  r#   r  KeyErrorappendr  r   )opcdstkbopaopargdictresult_kindr-  r  symotextresopbconvaconvbvalavalresults                   r0  do_binop'evaluate_name_formula.<locals>.do_binop  sb   3x1}}ggiggi0;D0A-d# D!HH D! D!HH D!
  T47	HH%EHH%E 99		 1JJuSYYSYYd!% QaF

5  	JJu	s   9E E87E8c           	      B   [        U5      S:  d   eUR                  5       nUR                  n[        U    u  pVpxSR	                  USS UR
                  U:   UR                  SS UR
                  U:   U/5      n	Ub  U" U5      nUR                  [        XXi5      5        g Nr   ry   r  r  )	rm  r  r  
unop_rulesr  r  r  r  r#   )
opcoder  r  r  valr-  r  sym1sym2r  s
             r0  
do_unaryop)evaluate_name_formula.<locals>.do_unaryop'  s    3x1}}ggiii!+F!3D D!HH D!
  ?s)C

7;T9:r;  c                 $    SX4-  n[        U5      e)Nz1ERROR *** Token 0x%02x (%s) found in NAME formula)r  )op_arg	oname_argmsgs      r0  not_in_name_formula2evaluate_name_formula.<locals>.not_in_name_formula7  s    A#$3r;  r   `   r8   r)   9Pos:%d Op:0x%02x Name:t%s Sz:%d opcode:%02xh optype:%02xhStack =r:   9ERROR *** Unexpected token 0x%02x ("%s"); biff_version=%dr%   r7   r   r/   
tIsect pre rH   ry   r  r  tIsect postr(   	tList prer<   
tList postr0   
tRange pre:tRange postrA   rC   rB   r   r   rG   lenlen   sz=%d strg=%r"""r   tExtended token not implementedr@   <BHr&   ??Unknown??r   tAttrSumr9   SUM(%s))   subop=%02xh subname=t%s sz=%d nc=%02xhr   r   rF   )tSheet & tEndsheet tokens not implementedr   r   r   r%   r'   r  BBHdr   r   Unhandled opcode: 0x%02xSize not set for opcode 0x%02xrE    BH#*** formula/tFunc unknown FuncID:%d    FuncID=%d name=%s nargs=%dc              3   8   #    U  H  oR                   v   M     g 7fr*  r  r,  args     r0  r1  (evaluate_name_formula.<locals>.<genexpr>$       *N~88~r3  ()<BrC  r>  (   FuncID=%d nargs=%d macro=%d prompt=%d&*** formula/tFuncVar unknown FuncID:%d!    name: %r, min~max args: %d~%dc              3   8   #    U  H  oR                   v   M     g 7fr*  r  r  s     r0  r1  r!  @       &J>Cxx>r3  zIF testarg kind?)r   r   zIF testarg value?z$$$$$$ IF => constantr  <H   tgtnamex=%dz!!! tgtobj has problems!!!z-----------       --------)headerfooter!    tName: setting text to     r=     %d bytes of cell ref formular   r   <hxxxxxxxxhhtRef3d)r1c1tArea3drO  <hxxxxxxxxH+   origrefx=%d refx=%d tgtnamex=%d dodgy=%dz!!!! Self-referential !!!!rb  rd  fr:  $<<Name #%d in external(?) file #%d>>z!!! bad tgtobj !!!z------------------    tNameX: setting text toFORMULA: /// Not handled yet: t!Fatal: token size is not positivez8End of formula. level=%d any_rel=%d any_err=%d stack=%r
*** Stack has unprocessed args)MSTACK_ALARM_LEVELraw_formulabasic_formula_lenbiff_versionrl  namern  r	   STACK_PANIC_LEVELr   szdictr#   r   r   r  	BYTES_ORDonamesr  rm  r  r  r  r  r   r  r  r:  tIsectFuncsr$   r   r  tRangeFuncsr   r;   	LEAF_RANKr
   encodingr   replacer   r   
tAttrNamesr  	FUNC_RANKr   floatr  r   int	func_defslistsepdivmodname_obj_list	evaluatedr   macrobinaryany_errdumpany_relstackcopydeepcopyscope_sheet_namesreprrT  r\  r|  r  r   r   _externsheet_type_b57error_opcodesfprintfr  any_external)Wrr  nobjnamexrt  levelrQ  fmlalenrS  rD  sztabrR  r\  r[  rY  re  unk_opnd
error_opndspushr  r  r  opr  optypeopxonameszr  r  r  r  r  r  resr6  relfarelfbstrgnewposr  subopncsubnameinxnbr  r  funcx
func_attrs	func_namenargsargtextpromptrW  minargsmaxargstestargresposchosentgtnamextgtobjrI  rJ  rG  rH  shx1shx2r  rZ  r[  rowx1colx1row_rel1col_rel1rowx2colx2row_rel2col_rel2rs  r  raw_shx1raw_shx2is_relref3ddodgyorigrefxextysW                                                                                          r0  r   r     s     D$$G	BHAiid:;AC	MdAwZZ8  GHH2JE
CEGGLtT"Ht$JLLE@;  
 !|

s
W

ty!dt)!2+CCs3ZME2vv67=?ZZI)U48Mub/"Cs##v%%#B.'4' '4|UD5zQ&iikiik(D)HH(D)(D)HH(D)!  dm 88t#sxx4'7#CHXX%T)9 XX11yy,1F"399~222"399~222!-'1syy|"E%*6]O	XX11#CHyy,1F"399~222"399~222!-'1syy|"E #		! 5 5 #		! 5 5 E>).v~)>(?CIc
}e**E4{E

C5zQ&iikiik(D)HH(D)(D)HH(D)!  dD$688t#sxx4'7#CHXX$-#((tTl2J#CHxx4'388t+;#'yy,1F"399~222"399~222$'II		$9	c
|UD4|UD5zQ&iikiik(D)HH(D)(D)HH(D)!  dD$688t#sxx4'7CXX11yy,1F"399~222"399~222!-'1syy|"E%*6]O	XX11#CHyy,1F"399~222"399~222!-'1syy|"E #		! 5 5 #		! 5 5 E>).v~)>(?CIc
}e**E'4'64/44geT9b9:48#;(,!eR[[$LLD& $=(,!eA$?LD&c\1RJ>RZZPT\\#t44s:geT9d;<4Rxx"#DEE4"5$1uSU*;<	r$..>D=a!Bd]BU:u::Fu:?*?)C%0E 'dIu EE"IBE '2r239;E'4'Bww"#NOO'4'tm!#&eT405fSk 14Ac!eBh3GH!8!%LEu:DAXu:DAX,U3D 4U ;;cADgdE9d;<"#=#FGGQw"#Cf#LMM2ICT>(Ot^Sr]"B3r?DQs1uRx,@A!DE"ud3J;$&JJ0h#-bq> 	5:"Iu56<>JJH5zU***%ll*NueVW~*NNG(17;Eufg%,EdD)U;c
t^Sr]"B!$r"2DQs1uRx4HILE5"5#.MFE!%/LE5@uf56<>JJH"ud3J>$&JJ0h.8!n+	7G=$gw78>@jjJ%27222225zU***5zU***!,,&J5%>&JJ$-w7dD)U;A:#UFmG||D%=8GLLD$8!"42::F f4GMM$=!"5BJJG A:gmm27/CHci&+VaZ#gmm2D%DF%*6]F%{{e36:A 3#)6<kk6<< 3#)!"9

Kc\#UFmG||t+55%*E6C4F+F%GF%{{e36:A 3#)6<kk6<< 3#)5&'Nc
t^dDQs1u$56q9A=HU+h6RZZH%%h/F##%b&(D'J||v}}KK

;;   
 dD)!TV\\TV]]Tfnn!3V^^6<<(A---mmFLLO4 CH||r!!;; !oofll;V[[J2DNT#Jt^!eR:CU42::6+.(D$OD4GDFD$q&$Q?FU5&rzz:$%C{q'7GWEdU6H+<%=$>?#Jt^,Tq5"GJD$U4t"**=/3,E5(H/3,E5(HOD4GDFE57E57CFU5&rzz:$%C{q(HhIdU6H+<%=$>?#Jt^E*t^dq5Q/03BU;b@rzzRt^E* t^E*
 t^Rx#Da%>dDQs1u$56q98T4H
d#Db&"?28RSeTWXZTZI[2\/Xx(K8"**U< "K8TK
d+.(D$'F'GDFD$q&$Q?Ftby GU5&rzz:$%Cq'7GWEfx/0)"e!<f&r51 CH{"G	#Jt^Rx01ubK
ddDQs1u$56q98T4H
d02vrL
d28RSeTWXZTZI[2\/Xx)[(H2::V< "K8TK
dtby G/3,E5(H/3,E5(HAAXAF'GDFE57E57CFU5&rzz:$%Cq(HhIfx/0)"e!<f&r51 CH{"G	#Jt^E$%CRx!'tE#a%/@!AhA!'tE#b&7I!JhA!8AIDAX 519DECx78>@jjJ5 ;"**M"##8!<Rt!LJD$\!)JD$33D9Dqy%-
d%1
dr	>#X./dD)U;))(3'')"fhAgN<<6==FNNJJ#7#7 $ 
 "$-C%XXX&..G%7Gv||,111--Q8C$<<2%%{{CH #%//&,,"? NCH7chhbjjY#J}$G*7%?bjjQG7BCCr	} s
W

~ +G

W{G	4u:?2D2::J
5zQAhLL$DNr;  c	                 <+  ^ ^ U[         :  a  SnT[        [        [        [        4;   n	Un
T R
                  nU(       a2  [        SUTXEXU4-  T R                  S9  [        U
SUT R                  S9  U[        :  a  [        S5      e[        U   nSn/ nSnSn[        [        S 5      n[        [        S 5      nUR                  nS nS nU U4S	 jnUS:X  a  U/nSUs=::  a  U:  Ga4  O  GO0[!        X   5      nUS
-  nUS-  S-	  nU(       a  US-   nOUn["        U   nUU   nU(       a2  [        SUUUUUU4-  T R                  S9  [        SUT R                  S9  US:X  a  SUUU4-  n[%        U5      e['        US5      T-  (       a	  U" UU5        U(       Gd  US::  ar  US:  a  SnOSnUS:X  a  UU:X  a  U(       a   e[)        UU
5      u  nn SUU 4-  n!U" [        [        S [*        U!5      5        T[,        [.        -  -  (       d	  U" UU5        GOySUs=::  a  S::  a  O  OU" UU5        GO^US:X  Ga  U(       a  [        SUT R                  S9  [1        U5      S:  d   eUR3                  5       n"UR3                  5       n#Sn$Sn%SR5                  SS U#R6                  U%:   U#R8                  SS U#R6                  U%:   U$SS U"R6                  U%:   U"R8                  SS U"R6                  U%:   /5      n&[        [:        5      n'U&U'l        U"R<                  [        :X  d  U#R<                  [        :X  a  [        U'l        OU"R<                  [        :X  d  U#R<                  [        :X  a  O^U"R<                  [:        s=:X  a  U#R<                  :X  a  O  OO5U"R<                  [>        s=:X  a  U#R<                  :X  a  O  O[>        U'l        O U" U'5        U(       a  [        S UT R                  S9  GOUS!:X  Ga  U(       a  [        S"UT R                  S9  [1        U5      S:  d   eUR3                  5       n"UR3                  5       n#S#n$Sn%SR5                  SS U#R6                  U%:   U#R8                  SS U#R6                  U%:   U$SS U"R6                  U%:   U"R8                  SS U"R6                  U%:   /5      n&[        [:        S U%U&5      n'U"R<                  [        :X  d  U#R<                  [        :X  a  [        U'l        OtU"R<                  [:        [>        4;   aY  U#R<                  [:        [>        4;   a?  [:        U'l        U#R<                  [>        :X  d  U"R<                  [>        :X  a  [>        U'l        O U" U'5        U(       a  [        S$UT R                  S9  GOUS%:X  GaN  U(       a  [        S&UT R                  S9  [1        U5      S:  d   eUR3                  5       n"UR3                  5       n#S'n$Sn%SR5                  SS U#R6                  U%:   U#R8                  SS U#R6                  U%:   U$SS U"R6                  U%:   U"R8                  SS U"R6                  U%:   /5      n&[        [:        S U%U&5      n'U"R<                  [        :X  d  U#R<                  [        :X  a  [        n'O*U"R<                  [:        s=:X  a  U#R<                  :X  a  O  OO U" U'5        U(       a  [        S(UT R                  S9  GOS)Us=::  a  S*::  a  O  OU" U[@        U5        GOUS+:X  a  GOUS,:X  a  U" [        [B        S [*        S5      5        GO^US-:X  a  US.::  a  [E        XS-   T RF                  SS/9u  n(n)O[I        XS-   SS/9u  n(n)U)U-
  nU(       a  [        S0UU(4-  T R                  S9  S1U(RK                  S1S25      -   S1-   n!U" [        [L        S [*        U!5      5        GOUS3:X  a  US:  d   e[%        S45      eUS5:X  a  [)        S6XS-   US7-    5      u  n*n+[N        RQ                  U*S85      n,U*S7:X  a	  U+S-  S9-   nOeU*S!:X  a]  S7nU(       a  [        S:UT R                  S9  [1        U5      S:  d   eUS;   n#S<U#R8                  -  n&[        [@        S [R        U&5      US;'   OS7nU(       a  [        S=U*U,UU+4-  T R                  S9  OS>Us=::  a  S?::  a  O  OUS@:  d   e[%        SA5      eSBUs=::  a  S
::  a  O  OUSB-
  n-/ SCQU-   n.[        [T        [@        [@        /U-   n/[)        SDSEU-   -   XS-   US-   U.-    5      u  n0U-S:X  a  [W        U05      n0[Y        U05      n!O-U-S:X  a  [Y        U05      n!OU-S:X  a  SFU0   n!OS1[Z        U0   -   S1-   n!U" [        U/S [*        U!5      5        O[%        SGU-  5      eUS::  a  [%        SHU-  5      eUU-  nGM  US:X  a
  U" U5        GO=US:X  Ga  S[]        USI:  5      -   n.[)        SDSJU.   -   XS-   US-   U.-    5      S   n1[^        RQ                  U1S 5      n2U2(       d!  [        SKU1-  T R                  S9  U" U5        G
OU2S S u  n3n4U(       a  [        SLU1U3U44-  T R                  S9  [1        U5      U4:  d   eU4(       a1  [`        R5                  SM UU4* S   5       5      n5U3< SU5< S3n&UU4* S 2	 OU3SN-   n&[        [        S [R        U&5      n'U" U'5        G
O0US:X  Gaf  S[]        USI:  5      -   n.[)        SOSJU.   -   XS-   US-   U.-    5      u  n4n1[c        U4SP5      u  n6n4[c        U1SQ5      u  n7n1U(       a  [        SRU1U4U7U64-  T R                  S9  U1SS:X  a  STn2O[^        RQ                  U1S 5      n2U2(       d!  [        SUU1-  T R                  S9  U" U5        G	OqU2S S u  n3n8n9U(       a  [        SVU3U8U94-  T R                  S9  U8U4s=::  a  U9::  d   e   e[1        U5      U4:  d   e[1        U5      U4:  d   e[`        R5                  SW UU4* S   5       5      n5U3< SU5< S3n&[        [        S [R        U&5      n'UU4* S 2	 U" U'5        GOUS:X  a  [)        SXXS-   US-    5      S   S-
  n:U(       a  [        SYU:-  T R                  S9  T Rd                  U:   n;U;Rf                  S;:X  a  U;Rh                  n&O*T Rj                  U;Rf                     < SZU;Rh                  < 3n&U(       a  [        S[[m        U&5      T R                  S9  [        [        S [*        U&5      n'U" U'5        GOUS7:X  a~  [o        XS-   XXE5      n'U(       a  [        S\U'T R                  S9  U'u  nn n<n=U<=(       d    U=n>U>(       a  [>        n?O[:        n?[q        UU U<U=XEU5      n&[        U?S [*        U&5      n'U" U'5        GOfUS:X  a  [s        XS-   XXE5      u  n@nAU(       a  [        S\W@WAT R                  S9  W@u  nBnCnDnEWAu  nFnGnHnIUBUFS-   UCUGS-   4nJUDUHUEUI4nK[u        UK5      (       a  [>        n?O[:        n?U(       a  [        S]WJWKT R                  S9  [w        WJWKXEU5      n&[        U?S [*        U&5      n'U" U'5        GOUS9:X  a  [y        UU5        GOUS^:X  a7  [)        SXXS-   US-    5      S   n.U(       a  [        S_U.-  T R                  S9  GO[US`:X  a  [o        XS-   XXE5      n'SnU(       a  [        S]U'T R                  S9  U'u  nn n<n=U<=(       d    U=n>U>(       a  [>        n?O[:        n?[q        UU U<U=XEU5      n&[        U?S [*        U&5      n'U" U'5        GOUSa:X  a  [s        XS-   XXE5      u  n@nAU(       a  [        S\W@WAT R                  S9  W@u  nBnCnDnEWAu  nFnGnHnIUBUFS-   UCUGS-   4nJUDUHUEUI4nK[u        UK5      (       a  [>        n?O[:        n?U(       a  [        S]WJWKT R                  S9  [w        WJWKXEU5      n&[        U?S [*        U&5      n'U" U'5        GOUS>:X  Gaw  US:  a8  [o        XS-   XXE5      n'[)        SXXS-   US-    5      S   nL[{        T ULU5      u  nMnNOX[o        XS-   XXE5      n'[)        SbXS-   US-    5      u  nOnPnQU(       a  [        ScWOWPWQT R                  S9  [}        T WOWPWQU5      u  nMnNU'u  nn n<n=U<=(       d    U=n>U=(       d    U>nWMWNS-   UUS-   U U S-   4nJUUMS;:  -  nU(       a  [        S]WJT R                  S9  [        [        S 5      n'U>(       a5  SSU<U<U=U=4nK[        WJUK-   5      nR[>        U'l        [        T URXEU5      U'l        O'[        WJ5      nR[:        U'l        [        T UR5      U'l        [*        U'l        S U'lB        U" U'5        GOUS?:X  Ga  US:  a:  [s        XS-   X5      u  n@nA[)        SXXS-   US-    5      S   nL[{        T ULU5      u  nMnNOZ[s        XS-   X5      u  n@nA[)        SbXS-   US-    5      u  nOnPnQU(       a  [        SdWOWPWQT R                  S9  [}        T WOWPWQU5      u  nMnNUWMS;:  -  nW@u  nBnCnDnEWAu  nFnGnHnIUD=(       d    WE=(       d    WH=(       d    WIn>U=(       d    U>nWMWNS-   WBWFS-   WCWGS-   4nJU(       a  [        S]WJT R                  S9  [        [        S 5      n'U>(       a5  SSWDWHWEWI4nK[        WJUK-   5      nR[>        U'l        [        T URXEU5      U'l        O'[        WJ5      nR[:        U'l        [        T UR5      U'l        [*        U'l        U" U'5        GO	US5:X  Ga  SnS[        [        S 5      n'US:  a  [)        SeXS-   US-    5      u  nLn:U:S-  n:ULnTO9[)        SfXS-   USa-    5      u  nLn:U:S-  n:ULnTULS:  a  WLS-  nLOWLS:  a  WL* S-
  nLOSnSU(       a  [        SgWTWLU:WS4-  T R                  S9  WS(       dC  US:  a  [{        T WLU5      u  nMnNO,WTS:  a  Shu  nMnNO T R                  WL   nUUUS7:X  a  Siu  nMnNOSju  nMnN[        n?S nVWMSk:X  a.  [L        n?T R                  U:   nVS1UVRK                  S1S25      -   S1-   n&OWS(       d  WMS;:  a  SlU:WT4-  n&OT Rd                  U:   n;U;Rf                  S;:X  a  U;Rh                  n&O*T Rj                  U;Rf                     < SZU;Rh                  < 3n&U(       a(  [        Sm[m        U'R8                  5      T R                  S9  [        U?WV[*        U&5      n'U" U'5        O5U[        ;   a  SnU" U5        O U(       a  [        SnU-   T R                  S9  SnUS::  a  [%        So5      eUU-  nSUs=::  a	  U:  a  GM.  O  U(       nU(       aT  [        SpX(       UU4-  T R                  S9  [1        U5      S:  a  [        SqT R                  S9  [        T R                  S9  [1        U5      S:w  a  S nWUW$ US   R8                  nWWW$ )rNr   zR::: decompile_formula len=%d fmlatype=%r browx=%r bcolx=%r reldelta=%d %r level=%dr^  r   r  z(Excessive indirect references in formulac                    [        U5      S:  d   eUR                  5       nUR                  5       n[        U    u  pEpgnSR                  SS UR                  U:   UR
                  SS UR                  U:   USS UR                  U:   UR
                  SS UR                  U:   /5      n	[        US Xy5      n
UR                  U
5        g )Nr%   ry   r  r  )rm  r  r  r  r  r  r#   r  )r  r  r  r  r  r  r-  r  r  r  r  s              r0  r  #decompile_formula.<locals>.do_binopg  s    3x1}}ggiggi0;D0A-d# D!HH D! D!HH D!
  T47

5r;  c           	         [        U5      S:  d   eUR                  5       n[        U    u  pEpgSR                  USS UR                  U:   UR
                  SS UR                  U:   U/5      nUR                  [        US XX5      5        g r  )rm  r  r  r  r  r  r  r#   )	r  r  r  r  r-  r  r  r  r  s	            r0  r  %decompile_formula.<locals>.do_unaryopx  s    3x1}}ggi!+F!3D D!HH D!
  	

7;d:;r;  c                 J   > SX[         T   4-  n[        UTR                  S9  g )Nz?ERROR *** Unexpected token 0x%02x (%s) found in formula type %sr^  )FMLA_TYPEDESCR_MAPrl  rn  )r  r  r  rr  fmlatypes      r0  unexpected_opcode,decompile_formula.<locals>.unexpected_opcode  s*    O$6x$@ABc

#r;  r   r  r8   r)   z;Pos:%d Op:0x%02x opname:t%s Sz:%d opcode:%02xh optype:%02xhr  r:   r   rD   z<x2Hz<xHBzSHARED FMLA at rowx=%d colx=%dr7   r   r/   r  r%   r  rH   ry   r  r  r  r(   r  r<   r  r0   r  r  r  rA   rC   rB   r   r   rG   r	  r  r  r  r   r  r@   r  r&   r  r   r  r9   r  r  r   r   rF   r  r   r  r  r  r  r  r  rE   r  r  r  c              3   8   #    U  H  oR                   v   M     g 7fr*  r  r  s     r0  r1  $decompile_formula.<locals>.<genexpr>[  r"  r3  r#  r$  rC  r>  r%  r=  )
CALL_ADDINr   rD   r&  r'  c              3   8   #    U  H  oR                   v   M     g 7fr*  r  r  s     r0  r1  r  {  r)  r3  r*  r+  r.  r/  r0  r1  r=   r2  r   r   r3  r4  r6  rO  r7  r8  rb  rd  r9  ra  r;  r<  r=  r>  z7End of formula. level=%d any_rel=%d any_err=%d stack=%rr?  )Fr@  r   r"   r    r!   rC  rl  rn  r	   rE  r   rF  r#   r   r   r  rG  rH  r  _TOKEN_NOT_ALLOWEDr   rK  r   r   rm  r  r  r  r  r   r  r   r   r;   r
   rL  r   rM  r   rN  r  rO  r   rP  r  r   rQ  rR  rS  rT  rU  r_  rD  r`  ra  rT  cellnamerelr\  sumrangename2drelr  r|  r  r$   r   r   r  rb  addin_func_namesrc  )Xrr  fmlari  r  rE  rF  rt  rh  r5  rD  rQ  rS  rj  rR  r\  r[  rY  rk  rl  rm  r  r  r  rn  r  ro  rp  rq  rr  r  fmtrI  rJ  r  r  r  r  r  r  rs  rv  rw  rx  ry  rz  r{  r|  r  r  r}  r~  r  r  r  r  rW  r  r  r  r  rG  rH  r  okindrZ  r[  r  r  r  r  r  r  r  r  r6  r  rs  r  r  r  r  r  r  r  r  r  ovaluer  sX   `  `                                                                                    r0  r   r   P  s      ,n>PRdeeHD	Bb%FGMOZZ	YdAwRZZ8  BCC2JE
CEGGtT"Ht$JLLE"<$ !|

s
W

ty!dt)!2+CCs3ZOE2vv67=?ZZI)U48Mub/"Cs##c1%0b%(~8 C CaxGrM%??#C.
d74,FgdD)T:;>O#CD%b%0'4' '4|UD5zQ&iikiik(D)HH(D)(D)HH(D)!  dm 88t#sxx4'7#CHXX%T)9 XX11XX11#CHc
}e"**E4{E

C5zQ&iikiik(D)HH(D)(D)HH(D)!  dD$688t#sxx4'7#CHXX$-#((tTl2J#CHxx4'388t+;#'c
|UD4|UD5zQ&iikiik(D)HH(D)(D)HH(D)!  dD$688t#sxx4'7CXX11c
}e"**E'4'64/44geT9b9:48#;(,!eR[[$LLD& $=(,!eA$?LD&c\1RJ>RZZPT\\#t44s:geT9d;<4Rxx"#DEE4"5$1uSU*;<	r$..>D=a!Bd]BU:u2::Fu:?*?)C%0E 'dIu EE"IBE '2r239;E'4'Bww"#NOO'4'tm!#&eT405fSk 14Ac!eBh3GH!8!%LEu:DAXu:DAX,U3D 4U ;;cADgdD)T:;"#=#FGGQw"#Cf#LMM2ICT>(Ot^Sr]"B3r?DQs1uRx,@A!DE"ud3J;eC"**Uh#-bq> 	5:"Iu56<>JJH5zU***%ll*NueVW~*NNG(17;Eufg%,EdD)U;c
t^Sr]"B!$r"2DQs1uRx4HILE5"5#.MFE!%/LE5@uf56<>JJH |2
&]]5$7
>$&JJ0h.8!n+	7G=$gw78>@jjJ%27222225zU***5zU***!,,&J5%>&JJ$-w7dD)U;5&'Nc
t^dDQs1u$56q9A=HU+h6RZZH%%h/F||r!#%??6<<#@&++N2DKbjjQ$i7C#Jt^!eR5HCU42::6+.(D$'FdGWeDQE%y%8C#Jt^, a%uEJD$U4t"**=/3,E5(H/3,E5(HU1WeU1W5F (Hh?H8}}U5&(D"68U4HE%y%8C#Jt^E*t^dq5Q/03BU;b@rzzRt^!eR5HCGU5#BJJ7+.(D$'FdGWeDQE%y%8C#Jt^
 - a%uEJD$U4t"**=/3,E5(H/3,E5(HU1WeU1W5F (Hh?H8}}U5&(D"68U4HE%y%8C#Jt^Rx#Da%uLdDQs1u$56q98T4H
d#Db&"M28RSeTWXZTZI[2\/Xx(K8"**U< "K8TK
d+.(D$'F'GDFD$q&$Q?Ftby GU5&rzz:$%Cq'7GWEfx/0)"eU4Hf&r51 CHCI#Jt^Rx01ubK
ddDQs1u$56q98T4H
d02vrL
d28RSeTWXZTZI[2\/Xx)[(H2::V< "K8TK
dtby G/3,E5(H/3,E5(HAAXAF'GDFE57E57CFU5&rzz:$%Cq(HhIfx/0)"eU4Hf&r51 CH#Jt^E$%CRx!'tE#a%/@!AhA!'tE#b&7I!JhA!8AIDAX 519DECx78>@jjJ
 8!<Rt!LJD$\!)JD$33D9Dqy%-
d%1
dEFrz,,X6fnnS$77#=$)>#X./ ))(3<<2%"KKE  "v||<fkkKE7chhbjjY%E:C#J}$G*7%?bjjQG7BCCr	A s
W

B +GGWe45;=::	Gu:?2D2::
5zQ M qMr;  c           	         U(       a4  [        SX#[        U5      U R                  S9  [        USX R                  S9  US:  d   e[        U   nSn/ n	Sn
SnU	R
                  nSUs=::  a  U:  Ga  O  GO[        X   5      nUS-  nUS-  S-	  nU(       a  US	-   nOUn[        U   nUU   nU(       a  [        S
XUUX4-  U R                  S9  U(       Gd  SUs=::  a  S::  a:  O  O7[        SXS-   US-    5      u  nnU(       a  [        SUU4U R                  S9  GOUS:X  at  U(       a  [        SXR                  S9  [        U	5      S:  d   eU	R                  5       nU	R                  5       nU" UU-   5        U(       a  [        SXR                  S9  GOFUS:X  a  U(       a  [        SXR                  S9  [        U	5      S:  d   eU	R                  5       nU	R                  5       n[        U5      S:X  d   e[        U5      S:X  d   e[        [        US   US   5      nU" U5        U(       a  [        SXR                  S9  GOUS:X  a  U(       a  [        SXR                  S9  [        U	5      S:  d   eU	R                  5       nU	R                  5       n[        U5      S:X  d   e[        U5      S:X  d   e[        [        US   US   5      nU" U5        U(       a  [        SXR                  S9  OUS:X  aa  [        SXS-   US-    5      u  nn[        R                  US5      nUS:X  a	  US-  S-   nOSnU(       a  [        SUUUU4-  U R                  S9  OUS:X  a_  US::  a#  [        XS-      5      nXS-   US-   U-    nUS-   nO[        XS-   SS 9u  nnUU-
  nU(       a  [        S!UU4-  U R                  S9  OUS::  a  [        S"U R                  S9  g UU-  nGM  US:X  a  GOUS:X  aN  S[!        US#:  5      -   n[        S$S%U   -   XS-   US-   U-    5      nU(       a  [        S&U-  U R                  S9  GOUS:X  as  S[!        US#:  5      -   n[        S'S%U   -   XS-   US-   U-    5      u  nn[#        US(5      u  n n[#        US)5      u  n!nU(       a  [        S*UUU!U 4-  U R                  S9  GO@US+:X  a4  [        S,XS-   US+-    5      n"U(       a  [        S-U"-  U R                  S9  GOUS:X  a-  [%        XS-   X45      n#U(       a  [        SU#U R                  S9  GOUS:X  a-  ['        XS-   X45      n#U(       a  [        SU#U R                  S9  GOUS.:X  a7  [        S,XS-   US+-    5      S   nU(       a  [        S/U-  U R                  S9  GOcUS0:X  a.  [%        XS-   USS19n#Sn
U(       a  [        S2U#U R                  S9  GO/US3:X  a.  ['        XS-   USS19n#Sn
U(       a  [        S2U#U R                  S9  GOUS4:X  a  [        S,XS-   US+-    5      S   n$[%        XS+-   X45      n#U(       a  [        SU$U#U R                  S9  U#u  nnn%n&U
=(       d    U%=(       d    U&n
[)        U U$U5      u  n'n(UU'S5:  -  nU'U(S-   UUS-   UUS-   4n)U(       a  [        S2U)U R                  S9  US:X  a	  U" U)/5        GOAUS6:X  a  [        S,XS-   US+-    5      S   n$['        XS+-   X45      u  n*n+U(       a  [        SU$U*U+U R                  S9  U*u  n,n-n.n/U+u  n0n1n2n3U
=(       d    U.=(       d    U/=(       d    U2=(       d    U3n
[)        U U$U5      u  n'n(UU'S5:  -  nU'U(S-   U,U0S-   U-U1S-   4n)U(       a  [        S2U)U R                  S9  US:X  a	  U" U)/5        OkUS:X  a8  [        SXS-   US-    5      u  n$n"U(       a  [        S7U$U"4-  U R                  S9  O-U[*        ;   a  SnO U(       a  [        S8U-   U R                  S9  SnUS::  a  [        S"U R                  S9  g UU-  nSUs=::  a	  U:  a  GM  O  U(       aB  [        S9U
(       X4-  U R                  S9  [        U	5      S:  a  [        S:U R                  S9  g g g );Nr   r^  r   r  rH   r   r  r8   r)   r  r   r%   rO  r0  r(   r  z
tlist postr0   r  r  r/   r  r  r@   r  r&   r  r   r  r   rG   r	  r  z**** Dud size; exiting ****rE   r  r  z   FuncID=%dr$  rC  r>  r%  r7   r*  z   namex=%dr=   r2  r   )rD  r1  r   r   r9   r   z   refx=%d namex=%dr=  z.End of formula. any_rel=%d any_err=%d stack=%rr?  )rl  rm  rn  r	   rF  r  rG  rH  r   r  r:  rJ  rI  rN  r  r   rQ  rT  rT  r\  r|  rc  )4rr  rQ  ri  rS  rD  rt  isnamerj  rR  r\  r[  rY  rm  rn  r  ro  rp  rq  rr  rI  rJ  r  r  r  rx  ry  rz  rv  rw  r|  r}  r  r  rW  rg  rs  rs  rG  rH  r  r  r6  rZ  r[  r  r  r  r  r  r  r  r  s4                                                       r0  r   r   ^  s<   ng3t92::FdAwZZ88O82JE
CEGGLLE
s
W

ty!dt)!2+CCs3ZME2v67=?ZZIv%%#E4Ac!e+<=
dtdD\

C4{E

C5zQ&iikiikcCi |UD4|UD5zQ&iikiik3x1}$}3x1}$}%k3q63q6Bf}e**E4|UD5zQ&iikiik3x1}$}3x1}$}%k3q63q6Bf}e**E4"5$1uSU*;<	r$..>D=a!BBJeU\^`bdMeelnlvlvw48"4A;/BAc!eBh/DaB#<Tq5QR#SLD&#B1RJ>RZZP77bjjI2ICT>t^Sr]"B3r?DQs1uRx,@AEU>E1

Ct^Sr]"B!$r"2DQs1uRx4HILE5"5#.MFE!%/LE5UEPUW\^dHeelnlvlvwt^4!eCE!23EU=50rzzBt^!eR:CU42::6t^%dE2@CU42::6t^dq5Q/03BU;b@rzzRt^!eR!<CGU5#BJJ7t^%dE2BCGU5#BJJ7t^$U3q5 1215D!eR:CU4s<+.(D$33GG4RtDJD$tby GDFD$q&$Q?FU5&rzz:{E6(Ot^$U3q5 1215D,Tq5"GJD$U4tT

C/3,E5(H/3,E5(HMMXMMXG4RtDJD$tby GDFE57E57CFU5&rzz:{E6(Ot^ U3q5(9:KD%U0D%=@rzzR}$GU<uD2::VG7/bjjAr	U s
W

V >g-.46JJ	@u:?2D  r;  c                     Uc  SnU(       d  U(       a  SU S-   -  $ SU S-   -  $ U(       a  U (       a  SU -  $ gSX -   S-  S-   -  $ )	NTzR%dr   z$%dzR[%d]r   z%dr?  r+  )rI  rowxrelrE  r5  s       r0  
rownamerelr    sZ    }DF##QT>!ELE)A-..r;  c                     Uc  SnU(       d  U(       a  SU S-   -  $ S[        U 5      -   $ U(       a  U (       a  SU -  $ g[        X -   S-  5      $ )NTzC%dr   $zC[%d]Cr@  r   )rJ  colxrelrF  r5  s       r0  
colnamerelr    sU    }D1H%%WT]""T>!ELC'((r;  c                 (    S[        U5      U S-   4-  $ )z(Utility function: ``(5, 7)`` => ``'H6'``z%s%dr   r  )rI  rJ  s     r0  r   r     s    WT]DF+++r;  c                 P    U(       a  SU S-   US-   4-  $ S[        U5      U S-   4-  $ )z*Utility function: ``(5, 7)`` => ``'$H$6'``zR%dC%dr   z$%s$%dr  )rI  rJ  r5  s      r0  r   r   "  s5    4646***wt}d1f---r;  c                     U(       d  U(       d  [        XU5      $ U(       a  Ub
  U(       a  Uc  Sn[        XXV5      n[        XXF5      nU(       a  X-   $ Xx-   $ )NT)r   r  r  )	rI  rJ  r  r  rE  rF  r5  crs	            r0  r  r  (  sO    74t,,EMw5=4%.A4%.Au5Lr;  c                 N    SnU S::  a  X   $ [        U S5      u  p#XS-
     X   -   $ )z6Utility function: ``7`` => ``'H'``, ``27`` => ``'AB'``ABCDEFGHIJKLMNOPQRSTUVWXYZr@   r   r   )rT  )rJ  alphabetxdiv26xmod26s       r0  r   r   4  s9    +Hrz~b)
#h&666r;  c                     U(       a  gXS-   :X  a  X2S-   :X  a  [        XU5      $ [        XU5      < S[        US-
  US-
  U5      < 3$ )z'``(5, 20, 7, 10)`` => ``'$H$6:$J$20'`` Nr   r  )r   )rlorhiclochir5  s        r0  rangename2dr  =  sI    
!e|1u3T**!#D1;s1uc!eT3RSSr;  c                     U u  pVpxUu  ppU	(       d  U
(       a  Uc  SnU(       d  U(       a  Uc  Sn[        XWXX#U5      < S[        US-
  US-
  XX#U5      < 3$ )NTr  r   )r  )rlo_rhi_clo_chirlorel_rhirel_clorel_chirelrE  rF  r5  r  r  r  r  rlorelrhirelclorelchirels                r0  r  r  E  sb    (Cc%@"FF&em&emC&%ECE3q5&%E r;  c                 X    UR                   n[        U /USS Q76 < S[        USS 6 < 3$ )zy
Utility function:
``Ref3D(1, 4, 5, 20, 7, 10)`` =>
``'Sheet2:Sheet3!$H$6:$J$20'``
(assuming Excel's default sheetnames)
Nr%   r.  r   )r6  
sheetranger  )bookr  r6  s      r0  r   r   R  s8     \\F4%&!*%VAa[!# #r;  c                     UR                   nUR                  n[        XSS USS 5      n[        USS USS X#U5      nU(       d  U$ U< SU< 3$ )z
Utility function:
``Ref3D(coords=(0, 1, -32, -22, -13, 13), relflags=(0, 0, 1, 1, 1, 1))``

In R1C1 mode => ``'Sheet1!R[-32]C[-13]:R[-23]C[12]'``

In A1 mode => depends on base cell ``(browx, bcolx)``
Nr%   r   r.  )r6  r  sheetrangerelr  )	r  r  rE  rF  r5  r6  r  shdescrngdescs	            r0  r   r   ^  s]     \\F~~H4Xbq\:FVAa[(1Q-tLGg&&r;  c                     US:  a  X   nOSSSSS.R                  USU-  5      nSU;   a  SUR                  SS	5      -   S-   $ S
U;   a  SU-   S-   $ U$ )Nr   z?internal; any sheet?zinternal; deleted sheetzinternal; macro sheetz<<external>>)r9   r:   ri  rc  z
?error %d?'z''r  )r  rM  )shnamesshxshnames      r0  quotedsheetnamer  o  sz    
ax ()'	

 #c<#%
& 	 f}V^^C..44
f}V|c!!Mr;  c                 t    U R                  5       n[        X15      nXS-
  :w  a  US[        X2S-
  5      -   -  nU$ )Nr   r  )sheet_namesr  )r  sloshir  r  s        r0  r  r    s@     GW*F
!e|#Q777Mr;  c                     Uu  p4Uu  pVU(       d  U(       d  [        XU5      $ USs=:X  a	  US-
  :X  a  O   eU(       a  U(       d   eg)Nr   r   ry   )r  )r  srange	srangerelr  r  slorelshirels          r0  r  r    sF    HCNF&$S))1A446f44r;  )NN)r   )r   r   )NNNr   r   r   )Nr   )NNr   )ur  
__future__r   r]  operatoroprstructr   biffhr   r   r   r	   r
   r   timemachine__all__r   r   r   r    r!   r"   ALL_FMLA_TYPESr  r  r  r   r   r;   r   r   r   r   r   r   rS  sztab0sztab1sztab2sztab3sztab4rF  rH  rR  rN  setrc  minmaxrJ  rI  r:  rK  rM  rT  r\  r|  r  	Exceptionr  objectr#   r4  r$   tAddtSubtMultDivtPowertConcatrangetLTtLEtEQtGEtGTtNEr  r  r  r  r  r  r  r  r  rP  _arith_argdict_cmp_argdict_strg_argdictaddsubmultruedivr  r  rK  rO  r@  rE  r   r   r   r  r  r   r   r  r   r  r  r   r   r  r  r  r+  r;  r0  <module>r     s;   &           	  ^+^+114FF114FF114FF114FF114FF114FF114FF_,_, #   	
							 		
  
] 
_ 
` 
a 
] 
								
 
RF	8F 	:F 	8	F
 	8F 	8F 	8F 	8F 	8F 	8F 	8F 	7F 	9F 	8F 	8F  	:!F" 	8#F$ 	8%F& 	8'F( 	8)F* 	7+F, 	8-F. 	8/F0 	81F2 	83F4 	85F6 	87F8 	89F: 	9;F< 	9=F> 	;?F@ 	9AFB 	:CFD 	8EFF 	8GFH 	7IFJ 	7KFL 	8MFN 	8OFP 	8QFR 	9SFT 	:UFV 	:WFX 	:YFZ 	:[F\ 	:]F^ 	:_F` 	8aFb 	:cFd 	9eFf 	;gFh 	;iFj 	;kFl 	;mFn 	<oFp 	<qFr 	<sFt 	<uFv 	=wFx 	:yFz 	9{F| 	7}F~ 	:F@ 	:AFB 	:CFD 	8EFF 	8GFH 	8IFJ 	9KFL 	8MFN 	8OFP 	8QFR 	7SFT 	8UFV 	8WFX 	8YFZ 	<[F\ 	:]F^ 	8_F` 	8aFb 	;cFd 	9eFf 	8gFh 	8iFj 	9kFl 	;mFn 	;oFp 	8qFr 	9sFt 	8uFv 	8wFx 	8yFz 	8{F| 	9}F~ 	9F@ 	9AFB 	8CFD 	;EFF 	;GFH 	8IFJ 	:KFL 	9MFN 	8OFP 	8QFR 	8SFT 	8UFV 	8WFX 	8YFZ 	8[F\ 	8]F^ 	:_F` 	;aFb 	<cFd 	9eFf 	8gFh 	8iFj 	8kFl 	9mFn 	=oFp 	=qFr 	8sFt 	8uFv 	8wFx 	:yFz 	8{F| 	8}F~ 	8F@ 	:AFB 	:CFD 	9EFF 	8GFH 	:IFJ 	9KFL 	:MFN 	:OFP 	;QFR 	9SFT 	9UFV 	:WFX 	8YFZ 	9[F\ 	9]F^ 	8_F` 	8aFb 	:cFd 	<eFf 	:gFh 	7iFj 	>kFl 	8mFn 	8oFp 	8qFr 	8sFt 	8uFv 	8wFx 	8yFz 	8{F| 	:}F~ 	8F@ 	<AFB 	9CFD 	8EFF 	8GFH 	8IFJ 	8KFL 	8MFN 	;OFP 	9QFR 	9SFT 	9UFV 	:WFX 	:YFZ 	8[F\ 	:]F^ 	:_F` 	:aFb 	8cFd 	8eFf 	9gFh 	;iFj 	:kFl 	9mFn 	;oFp 	:qFr 	:sFt 	:uFv 	;wFx 	8yFz 	:{F| 	8}F~ 	:F@ 	8AFB 	9CFD 	:EFF 	:GFH 	;IFJ 	9KFL 	9MFN 	9OFP 	9QFR 	9SFT 	9UFV 	:WFX 	9YFZ 	9[F\ 	9]F^ 	9_F` 	9aFb 	9cFd 	;eFf 	:gFh 	8iFj 	8kFl 	8mFn 	8oFp 	8qFr 	8sFt 	9uFv 	9wFx 	9yFz 	9{F| 	9}F~ 	9F@ 	8AFB 	9CFD 	9EFF 	8GFH 	9IFJ 	8KFL 	8MFN 	9OFP 	:QFR 	9SFT 	8UFV 	;WFX 	:YFZ 	8[F\ 	9]F^ 	9_F` 	9aFb 	9cFd 	8eFf 	8gFh 	8iFj 	8kFl 	8mFn 	8oFp 	8qFr 	8sFt 	8uFv 	8wFx 	8yFz 	8{F| 	8}F~ 	8F@ 	8AFB 
9	8	8	8	8KF	R 









 >?Cc3,Cc3,($ 59($	<$#&L BC&*	9 	Y1f Y1x?/E ?/B 	
$T40 S#sC "             .,xs+^T377R5^T377R5^T377R5^T3;;S9
^T8R6]E377R5\5'R5\5'R6\5'R5\5'R6\5'R5\5'R6  C
,C
,B
-
 		  ]	B 8<,-K\ZEH/),.
7T

#'" r;  