
    f;                     X   d dl mZmZmZ d dlmZ  G d de      Z G d de      Z G d de      Z	 G d	 d
e      Z
 G d de      Z G d de      ZeZ G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z G d- d.e      Z G d/ d0e      Z G d1 d2e      Z  G d3 d4e      Z! G d5 d6e      Z" G d7 d8e      Z# G d9 d:e      Z$ G d; d<e      Z% G d= d>e%      Z& G d? d@e%      Z' G dA dBe      Z( G dC dDee      Z)e)Z* G dE dFe      Z+ G dG dHe      Z, G dI dJe      Z- G dK dLe      Z. G dM dNe      Z/ G dO dPe      Z0 G dQ dRe      Z1 G dS dTe      Z2 G dU dVe      Z3 G dW dXe      Z4 G dY dZe      Z5 G d[ d\e      Z6 G d] d^e      Z7 G d_ d`e      Z8 G da dbe      Z9 G dc dde      Z: G de dfe      Z; G dg dhe      Z< G di dje      Z= G dk dle      Z> G dm dne>      Z? G do dpe>      Z@ G dq dre      ZA G ds dte      ZB G du dve      ZC G dw dxe      ZD G dy dze      ZE G d{ d|e      ZF G d} d~eF      ZG G d de      ZH G d de      ZI G d deI      ZJ G d deI      ZK G d deI      ZL G d de      ZM G d de      ZN G d de      ZO G d de      ZP G d de      ZQ G d de      ZR G d de      ZS G d de      ZT G d de      ZU G d de      ZV G d de      ZW G d de      ZX G d de      ZY G d de      ZZ G d de      Z[ G d de      Z\ G d de      Z] G d de      Z^ G d de      Z_ G d de      Z` G d de      Za G d de      Zb G d de      Zc G d de      Zd G d de      Ze G d de      Zf G d de      Zg G d de      Zhy)    )ListOptionalTuple)messagesc                       e Zd Zy)InPlaceUpgradeNotSupportedErrorN__name__
__module____qualname__     5/usr/lib/python3/dist-packages/uaclient/exceptions.pyr   r          r   r   c                       e Zd Zy)IsProLicensePresentErrorNr	   r   r   r   r   r   
   r   r   r   c                       e Zd Zy)CancelProLicensePollingNr	   r   r   r   r   r      r   r   r   c                       e Zd Zy)DelayProLicensePollingNr	   r   r   r   r   r      r   r   r   c                   B     e Zd Z	 	 	 ddedee   dededdf
 fdZ xZS )	ProcessExecutionErrorNcmd	exit_codestdoutstderrreturnc                     || _         || _        || _        |s!t        j                  j                  |      }n"t        j                  j                  |||      }t        | !  |       y )N)r   )r   r   r   )	r   r   r   r   SUBP_INVALID_COMMANDformatSUBP_COMMAND_FAILEDsuper__init__)selfr   r   r   r   message	__class__s         r   r#   zProcessExecutionError.__init__   sg     "33::s:CG22999V : G 	!r   )N r'   )r
   r   r   strr   intr#   __classcell__r&   s   @r   r   r      sL     $("" C=" 	"
 " 
" "r   r   c                   J    e Zd ZdZdZdZdZddZed        Z	ed        Z
d Zy)	UbuntuProErrorzu
    Base class for all of our custom errors.
    All possible exceptions from our API should extend this class.
    N   c                     | j                   " | j                   j                  di || _        n| j                  | _        || _        |j                         D ]  \  }}t        | ||        y Nr   )_formatted_msgr    	named_msg_msgadditional_infoitemssetattr)r$   kwargskeyvalues       r   r#   zUbuntuProError.__init__5   sj    *7T0077 DN "YYDN% ,,. 	&JCD#u%	&r   c                 .    | j                   j                  S Nr2   msgr$   s    r   r=   zUbuntuProError.msgB   s    ~~!!!r   c                 .    | j                   j                  S r;   )r2   namer>   s    r   msg_codezUbuntuProError.msg_codeF   s    ~~"""r   c                 .    | j                   j                  S r;   r<   r>   s    r   __str__zUbuntuProError.__str__J   s    ~~!!!r   r   N)r
   r   r   __doc__r3   r1   r   r#   propertyr=   rA   rC   r   r   r   r-   r-   *   sJ    
 DNI& " " # #"r   r-   c                   <     e Zd ZdZdej
                  f fdZ xZS )AnonymousUbuntuProErrorz
    For cases where we have a NamedMessage of an Error already but it isn't in
    exception form, and we need to raise it as an exception. This generally
    should only be used in cli-only code.
    r2   c                 2    t        |   di | || _        y r0   )r"   r#   r2   )r$   r2   r7   r&   s      r   r#   z AnonymousUbuntuProError.__init__[   s    "6""r   )r
   r   r   rE   r   NamedMessager#   r*   r+   s   @r   rH   rH   T   s    #("7"7 # #r   rH   c                   $    e Zd Zej                  Zy)APTProcessConflictErrorN)r
   r   r   r   E_APT_PROCESS_CONFLICTr3   r   r   r   rL   rL   e       **Dr   rL   c                   $    e Zd Zej                  Zy)APTInvalidRepoErrorN)r
   r   r   r   E_APT_UPDATE_INVALID_URL_CONFIGr1   r   r   r   rP   rP   i       ==Nr   rP   c                   $    e Zd Zej                  Zy)APTUpdateProcessConflictErrorN)r
   r   r   r   E_APT_UPDATE_PROCESS_CONFLICTr3   r   r   r   rT   rT   m       11Dr   rT   c                   $    e Zd Zej                  Zy)APTUpdateInvalidRepoErrorN)r
   r   r   r   E_APT_UPDATE_INVALID_REPOr1   r   r   r   rX   rX   q       77Nr   rX   c                   $    e Zd Zej                  Zy)APTUpdateFailedN)r
   r   r   r   E_APT_UPDATE_FAILEDr1   r   r   r   r\   r\   u       11Nr   r\   c                   $    e Zd Zej                  Zy)APTInstallProcessConflictErrorN)r
   r   r   r   E_APT_INSTALL_PROCESS_CONFLICTr3   r   r   r   r`   r`   y   s    22Dr   r`   c                   $    e Zd Zej                  Zy)APTInstallInvalidRepoErrorN)r
   r   r   r   E_APT_INSTALL_INVALID_REPOr1   r   r   r   rc   rc   }       88Nr   rc   c                   $    e Zd Zej                  Zy)APTInvalidCredentialsN)r
   r   r   r   E_APT_INVALID_CREDENTIALSr1   r   r   r   rg   rg      rZ   r   rg   c                   $    e Zd Zej                  Zy)
APTTimeoutN)r
   r   r   r   E_APT_TIMEOUTr1   r   r   r   rj   rj          ++Nr   rj   c                   $    e Zd Zej                  Zy)APTUnexpectedErrorN)r
   r   r   r   E_APT_UNEXPECTED_ERRORr1   r   r   r   rn   rn          44Nr   rn   c                   $    e Zd Zej                  Zy)APTCommandTimeoutN)r
   r   r   r   E_APT_COMMAND_TIMEOUTr1   r   r   r   rr   rr          33Nr   rr   c                   $    e Zd Zej                  Zy)SnapNotInstalledErrorN)r
   r   r   r   E_SNAP_NOT_INSTALLED_ERRORr1   r   r   r   rv   rv      re   r   rv   c                   $    e Zd Zej                  Zy)UnexpectedSnapdAPIErrorN)r
   r   r   r   E_UNEXPECTED_SNAPD_API_ERRORr1   r   r   r   ry   ry          ::Nr   ry   c                   $    e Zd Zej                  Zy)SnapdAPIConnectionRefusedN)r
   r   r   r   E_SNAPD_CONNECTION_REFUSEDr3   r   r   r   r}   r}          ..Dr   r}   c                   $    e Zd Zej                  Zy)CannotInstallSnapdErrorN)r
   r   r   r   E_CANNOT_INSTALL_SNAPDr3   r   r   r   r   r      rN   r   r   c                   $    e Zd Zej                  Zy)ErrorInstallingLivepatchN)r
   r   r   r   E_ERROR_INSTALLING_LIVEPATCHr1   r   r   r   r   r      r{   r   r   c                   $    e Zd Zej                  Zy)ProxyNotWorkingErrorN)r
   r   r   r   E_NOT_SETTING_PROXY_NOT_WORKINGr1   r   r   r   r   r      rR   r   r   c                   $    e Zd Zej                  Zy)ProxyInvalidUrlN)r
   r   r   r   E_NOT_SETTING_PROXY_INVALID_URLr1   r   r   r   r   r      rR   r   r   c                   $    e Zd Zej                  Zy)PycurlRequiredErrorN)r
   r   r   r   E_PYCURL_REQUIREDr3   r   r   r   r   r          %%Dr   r   c                   $    e Zd Zej                  Zy)PycurlErrorN)r
   r   r   r   E_PYCURL_ERRORr1   r   r   r   r   r      s    ,,Nr   r   c                   $    e Zd Zej                  Zy)ProxyAuthenticationFailedN)r
   r   r   r   E_PROXY_AUTH_FAILr3   r   r   r   r   r      r   r   r   c                   6    e Zd Zej                  ZdZdZdZd Z	y)ExternalAPIErrorNc                 d    dj                  | j                  | j                  | j                        S )Nz{}: [{}], {})r    codeurlbodyr>   s    r   rC   zExternalAPIError.__str__   s#    $$TYY$))DDr   )
r
   r   r   r   E_EXTERNAL_API_ERRORr1   r   r   r   rC   r   r   r   r   r      s"    22ND
CDEr   r   c                       e Zd Zy)ContractAPIErrorNr	   r   r   r   r   r      r   r   r   c                       e Zd Zy)SecurityAPIErrorNr	   r   r   r   r   r      r   r   r   c                   8     e Zd Zej                  Zd fdZ xZS )PycurlCACertificatesErrorc                 2    t        |   di | || _        y r0   )r"   r#   r   )r$   r   r7   r&   s      r   r#   z"PycurlCACertificatesError.__init__   s    "6"r   rD   )r
   r   r   r   E_PYCURL_CA_CERTIFICATESr3   r#   r*   r+   s   @r   r   r      s    ,,D r   r   c                   4    e Zd Zej                  ZdedefdZy)ConnectivityErrorcauser   c                     t        |dd       rt        t        |d            }nt        |      }t        j                  | |       t        j                  | ||       || _        || _        y )Nreason)cause_errorr   )getattrr(   IOErrorr#   r-   r   r   )r$   r   r   r   s       r   r#   zConnectivityError.__init__   s`    
 5(D)geX67Ke*K{++3G 'r   N)	r
   r   r   r   E_CONNECTIVITY_ERRORr1   	Exceptionr(   r#   r   r   r   r   r      s$    22N r   r   c                   $    e Zd Zej                  Zy)InvalidServiceOpErrorNr
   r   r   r   E_INVALID_SERVICE_OP_FAILUREr1   r   r   r   r   r      r{   r   r   c                   ,    e Zd ZdZdZej                  Zy)AlreadyAttachedErrorzDAn exception to be raised when a command needs an unattached system.   N)r
   r   r   rE   r   r   E_ALREADY_ATTACHEDr1   r   r   r   r   r      s    NI00Nr   r   c                   ,    e Zd ZdZdZej                  Zy)AttachErrorz@An exception to be raised when we detect a generic attach error.r.   N)r
   r   r   rE   r   r   E_ATTACH_FAILUREr3   r   r   r   r   r     s    JI$$Dr   r   c                   $    e Zd Zej                  Zy)AttachInvalidConfigFileErrorN)r
   r   r   r   E_ATTACH_CONFIG_READ_ERRORr1   r   r   r   r   r     re   r   r   c                   $    e Zd Zej                  Zy)AttachInvalidTokenErrorN)r
   r   r   r   E_ATTACH_INVALID_TOKENr3   r   r   r   r   r     rN   r   r   c                   $    e Zd Zej                  Zy)AttachForbiddenExpiredN)r
   r   r   r   E_ATTACH_FORBIDDEN_EXPIREDr1   r   r   r   r   r     re   r   r   c                   $    e Zd Zej                  Zy)AttachForbiddenNotYetN)r
   r   r   r   E_ATTACH_FORBIDDEN_NOT_YETr1   r   r   r   r   r     re   r   r   c                   $    e Zd Zej                  Zy)AttachForbiddenNeverN)r
   r   r   r   E_ATTACH_FORBIDDEN_NEVERr1   r   r   r   r   r     s    66Nr   r   c                   $    e Zd Zej                  Zy)AttachExpiredTokenN)r
   r   r   r   E_ATTACH_EXPIRED_TOKENr3   r   r   r   r   r   !  rN   r   r   c                   $    e Zd Zej                  Zy) MagicAttachTokenAlreadyActivatedN)r
   r   r   r   &E_MAGIC_ATTACH_TOKEN_ALREADY_ACTIVATEDr3   r   r   r   r   r   %  s    ::Dr   r   c                   $    e Zd Zej                  Zy)MagicAttachTokenErrorN)r
   r   r   r   E_MAGIC_ATTACH_TOKEN_ERRORr3   r   r   r   r   r   )  r   r   r   c                   $    e Zd Zej                  Zy)MagicAttachUnavailableN)r
   r   r   r   E_MAGIC_ATTACH_UNAVAILABLEr3   r   r   r   r   r   -  r   r   r   c                   $    e Zd Zej                  Zy)MagicAttachInvalidParamN)r
   r   r   r   E_MAGIC_ATTACH_INVALID_PARAMr1   r   r   r   r   r   1  r{   r   r   c                   (    e Zd ZdZej
                  Zy)MissingAptURLDirectivez@An exception for when the contract server doesn't include aptURLN)r
   r   r   rE   r   E_MISSING_APT_URL_DIRECTIVEr1   r   r   r   r   r   5  s    J99Nr   r   c                   (    e Zd ZdZej
                  Zy)UnattachedErrorz>An exception to be raised when a machine needs to be attached.N)r
   r   r   rE   r   E_UNATTACHEDr3   r   r   r   r   r   ;  s    H  Dr   r   c                   $    e Zd Zej                  Zy)UnattachedValidServicesErrorN)r
   r   r   r   "E_VALID_SERVICE_FAILURE_UNATTACHEDr1   r   r   r   r   r   A      @@Nr   r   c                   $    e Zd Zej                  Zy)UnattachedMixedServicesErrorN)r
   r   r   r   #E_MIXED_SERVICES_FAILURE_UNATTACHEDr1   r   r   r   r   r   E      AANr   r   c                   $    e Zd Zej                  Zy)UnattachedInvalidServicesErrorNr   r   r   r   r   r   I  r{   r   r   c                   $    e Zd Zej                  Zy)EntitlementNotFoundErrorN)r
   r   r   r   E_ENTITLEMENT_NOT_FOUNDr1   r   r   r   r   r   M  s    55Nr   r   c                   d     e Zd ZdZej
                  Zdeee	ej                  f      f fdZ xZS )EntitlementsNotEnabledError   failed_servicesc                     |D cg c]%  }|d   |d   j                   |d   j                  d' }}t        |   d|i       y c c}w )Nr   r.   )r@   r   titleservices)r4   )r@   r=   r"   r#   )r$   r   f
info_dictsr&   s       r   r#   z$EntitlementsNotEnabledError.__init__V  s^    
 %
 qT1Q499qtxx@

 
 	'4 	 	
	
s   *A)r
   r   r   r   r    E_ENTITLEMENTS_NOT_ENABLED_ERRORr3   r   r   r(   rJ   r#   r*   r+   s   @r   r   r   Q  s:    I44D	
#E#x/D/D*D$EF	
 	
r   r   c                   $    e Zd Zej                  Zy)AttachFailureDefaultServicesN)r
   r   r   r   !E_ATTACH_FAILURE_DEFAULT_SERVICESr3   r   r   r   r   r   b  s    55Dr   r   c                   $    e Zd Zej                  Zy)AttachFailureUnknownErrorN)r
   r   r   r   E_ATTACH_FAILURE_UNEXPECTEDr3   r   r   r   r   r   f      //Dr   r   c                   $    e Zd Zej                  Zy)RepoNoAptKeyN)r
   r   r   r   E_REPO_NO_APT_KEYr1   r   r   r   r   r   j  s    //Nr   r   c                   $    e Zd Zej                  Zy)RepoNoSuitesN)r
   r   r   r   E_REPO_NO_SUITESr1   r   r   r   r   r   n  s    ..Nr   r   c                   $    e Zd Zej                  Zy)RepoPinFailNoOriginN)r
   r   r   r   E_REPO_PIN_FAIL_NO_ORIGINr1   r   r   r   r  r  r  rZ   r   r  c                   $    e Zd Zej                  Zy) InvalidContractDeltasServiceTypeN)r
   r   r   r   &E_INVALID_CONTRACT_DELTAS_SERVICE_TYPEr1   r   r   r   r  r  v  s    DDNr   r  c                   (    e Zd Zej                  ZdZy)InvalidProImageN)r
   r   r   r   E_INVALID_PRO_IMAGEr1   	error_msgr   r   r   r	  r	    s    11NIr   r	  c                   $    e Zd Zej                  Zy)CloudMetadataErrorN)r
   r   r   r   E_CLOUD_METADATA_ERRORr1   r   r   r   r  r    rp   r   r  c                   (    e Zd ZdZej
                  Zy)GCPServiceAccountErrorz;An exception raised when GCP service account is not enabledN)r
   r   r   rE   r   $E_GCP_SERVICE_ACCT_NOT_ENABLED_ERRORr1   r   r   r   r  r    s    EBBNr   r  c                   $    e Zd Zej                  Zy)AWSNoValidIMDSN)r
   r   r   r   E_AWS_NO_VALID_IMDSr1   r   r   r   r  r    r^   r   r  c                       e Zd Zy)CloudFactoryErrorNr	   r   r   r   r  r    r   r   r  c                   $    e Zd Zej                  Zy)CloudFactoryNoCloudErrorN)r
   r   r   r    E_UNABLE_TO_DETERMINE_CLOUD_TYPEr3   r   r   r   r  r        44Dr   r  c                   $    e Zd Zej                  Zy)CloudFactoryNonViableCloudErrorN)r
   r   r   r   E_UNSUPPORTED_AUTO_ATTACHr3   r   r   r   r  r    s    --Dr   r  c                   ,    e Zd ZdZdZej                  Zy)NonAutoAttachImageErrorz>Raised when machine isn't running an auto-attach enabled imager   N)r
   r   r   rE   r   r   $E_UNSUPPORTED_AUTO_ATTACH_CLOUD_TYPEr1   r   r   r   r  r    s    HIBBNr   r  c                   $    e Zd Zej                  Zy)InvalidFileFormatErrorN)r
   r   r   r   E_INVALID_FILE_FORMATr1   r   r   r   r"  r"    rt   r   r"  c                   $    e Zd Zej                  Zy)ParsingErrorOnOSReleaseFileN)r
   r   r   r   "E_ERROR_PARSING_VERSION_OS_RELEASEr1   r   r   r   r%  r%    r   r   r%  c                   $    e Zd Zej                  Zy)MissingSeriesOnOSReleaseFileN)r
   r   r   r   E_MISSING_SERIES_ON_OS_RELEASEr1   r   r   r   r(  r(        <<Nr   r(  c                   $    e Zd Zej                  Zy)InvalidLockFileN)r
   r   r   r   E_INVALID_LOCK_FILEr1   r   r   r   r,  r,    r^   r   r,  c                   $    e Zd Zej                  Zy)InvalidJsonN)r
   r   r   r   E_JSON_PARSER_ERRORr1   r   r   r   r/  r/    r^   r   r/  c                   $    e Zd Zej                  Zy)InvalidBooleanConfigValueN)r
   r   r   r   E_INVALID_BOOLEAN_CONFIG_VALUEr1   r   r   r   r2  r2    r*  r   r2  c                   $    e Zd Zej                  Zy)InvalidPosIntConfigValueN)r
   r   r   r   "E_CLI_CONFIG_VALUE_MUST_BE_POS_INTr1   r   r   r   r5  r5    r   r   r5  c                   $    e Zd Zej                  Zy)InvalidURLConfigValueN)r
   r   r   r   E_CONFIG_INVALID_URLr1   r   r   r   r8  r8    s    22Nr   r8  c                   $    e Zd Zej                  Zy)InvalidFeatureYamlConfigValueN)r
   r   r   r   E_CONFIG_NO_YAML_FILEr1   r   r   r   r;  r;    rt   r   r;  c                   $    e Zd Zej                  Zy)InvalidProxyCombinationConfigN)r
   r   r   r   E_INVALID_PROXY_COMBINATIONr3   r   r   r   r>  r>    r   r   r>  c                   $    e Zd Zej                  Zy)MissingDistroInfoFileN)r
   r   r   r   E_MISSING_DISTRO_INFO_FILEr3   r   r   r   rA  rA    r   r   rA  c                   $    e Zd Zej                  Zy)MissingSeriesInDistroInfoFileN)r
   r   r   r   $E_MISSING_SERIES_IN_DISTRO_INFO_FILEr1   r   r   r   rD  rD    s    BBNr   rD  c                   $    e Zd Zej                  Zy)InvalidOptionCombinationN)r
   r   r   r   E_INVALID_OPTION_COMBINATIONr1   r   r   r   rG  rG    r{   r   rG  c                   $    e Zd Zej                  Zy)NoHelpContentN)r
   r   r   r   E_CLI_NO_HELPr1   r   r   r   rJ  rJ    rl   r   rJ  c                   $    e Zd Zej                  Zy)InvalidSecurityIssueIdFormatN)r
   r   r   r   #E_SECURITY_FIX_CLI_ISSUE_REGEX_FAILr1   r   r   r   rM  rM    r   r   rM  c                   $    e Zd Zej                  Zy)InvalidArgChoiceN)r
   r   r   r   E_CLI_VALID_CHOICESr1   r   r   r   rP  rP    r^   r   rP  c                   $    e Zd Zej                  Zy)GenericInvalidFormatN)r
   r   r   r   E_CLI_EXPECTED_FORMATr1   r   r   r   rS  rS    rt   r   rS  c                   $    e Zd Zej                  Zy)RefreshConfigFailureN)r
   r   r   r   E_REFRESH_CONFIG_FAILUREr3   r   r   r   rV  rV    s    ,,Dr   rV  c                   $    e Zd Zej                  Zy)RefreshContractFailureN)r
   r   r   r   E_REFRESH_CONTRACT_FAILUREr3   r   r   r   rY  rY    r   r   rY  c                   $    e Zd Zej                  Zy)RefreshMessagesFailureN)r
   r   r   r   E_REFRESH_MESSAGES_FAILUREr3   r   r   r   r\  r\    r   r   r\  c                   $    e Zd Zej                  Zy)CLIJSONFormatRequireAssumeYesN)r
   r   r   r    E_JSON_FORMAT_REQUIRE_ASSUME_YESr3   r   r   r   r_  r_    r  r   r_  c                   $    e Zd Zej                  Zy)CLIAttachTokenArgXORConfigN)r
   r   r   r   E_ATTACH_TOKEN_ARG_XOR_CONFIGr3   r   r   r   rb  rb    rV   r   rb  c                   $    e Zd Zej                  Zy)CLIAPIOptionsXORDataN)r
   r   r   r   "E_API_ERROR_ARGS_AND_DATA_TOGETHERr3   r   r   r   re  re    s    66Dr   re  c                   ,    e Zd ZdZej
                  ZdZy)LockHeldErrora  An exception for when another pro operation is in progress

    :param lock_request: String of the command requesting the lock
    :param lock_holder: String of the command that currently holds the lock
    :param pid: Integer of the process id of the lock_holder
    N)r
   r   r   rE   r   E_LOCK_HELD_ERRORr1   pidr   r   r   rh  rh    s     //N
Cr   rh  c                   (    e Zd ZdZej
                  Zy)NonRootUserErrorz7An exception to be raised when a user needs to be root.N)r
   r   r   rE   r   E_NONROOT_USERr3   r   r   r   rl  rl    s    A""Dr   rl  c                   (    e Zd ZdZej
                  Zy)SecurityAPIMetadataErrorzDAn exception raised with Security API metadata returns invalid data.N)r
   r   r   rE   r   E_SECURITY_API_INVALID_METADATAr1   r   r   r   ro  ro  "  s    N==Nr   ro  c                   $    e Zd Zej                  Zy)SecurityIssueNotFoundN)r
   r   r   r   E_SECURITY_FIX_NOT_FOUND_ISSUEr1   r   r   r   rr  rr  (  r*  r   rr  c                   $    e Zd Zej                  Zy)GPGKeyNotFoundN)r
   r   r   r   E_GPG_KEY_NOT_FOUNDr1   r   r   r   ru  ru  ,  r^   r   ru  N)itypingr   r   r   uaclientr   r   r   r   r   r   r   r   r-   UserFacingErrorrH   rL   rP   rT   rX   r\   r`   rc   rg   rj   rn   rr   rv   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   UrlErrorr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r  r"  r%  r(  r,  r/  r2  r5  r8  r;  r>  rA  rD  rG  rJ  rM  rP  rS  rV  rY  r\  r_  rb  re  rh  rl  ro  rr  ru  r   r   r   <module>r{     s   ( ( 	i 		y 		6 		5 	"G "(!"Y !"N !	#n 	#"+n +>. >2N 28 82n 23^ 39 98N 8, ,5 54 49N 9;n ;/ /+n +;~ ;>> >>n >&. &-. -& &E~ E	' 		' 	  . ;N ;1> 1%. %9> 9+n +9^ 99N 97> 7+ +;~ ;/N //^ /;n ;:^ :!n !A> AB> B;^ ;6~ 6
. 
"6#> 60 ; 00> 0/> /8. 8E~ En 
5 5C/ C2^ 2	 	50 5.&7 .C/ C4^ 4A. A=> =2n 22. 2= =A~ A3N 34N 40N 0/N /CN C;~ ;,N ,B> B2~ 24> 4-> -/^ //^ /5N 52 27> 7	N 	#~ #>~ >=N =2^ 2r   