JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr gf\ ddlZddlZddlmZddlmZmZmZddlm Z ddl m Z ddl m Z iddd dd dd dd d dd dd dd dddddddddddddddddddddddddddZd Zd!Zd"Zd#d$gZd%d&gZedZd'ZGd(d)eZy)*N)gettext)ShortcutHandlerShortcutExceptionInvalidShortcutException)SourcesListShortcutHandler)URIShortcutHandler)urlparsefolsomprecisegrizzlyhavanaicehousejunotrustykilolibertymitakanewtonxenialocatapikequeensrockybionicsteintrainussurivictoriafocaljammynoble)wallabyxenayogazedantelopebobcatcaracal dalmatianzUbuntu Cloud Archivez.https://wiki.ubuntu.com/OpenStack/CloudArchivez0http://ubuntu-cloud.archive.canonical.com/ubuntuz cloud-archiveucaupdatesproposedzubuntu-cloud-keyringcheZdZfdZedZedZdZd fd ZdZ dZ dZ d Z xZ S) CloudArchiveShortcutHandlerc tt| |fi|d|_t |j ||j ||j|fstd|z}t||jj|_d|jz|_ |jj|_ |jtvr#td|jz}t||jtvr#td|jz}t|t|j}t!|t#j$dxs|f}|j&|vrAtd|jj)|j)fz}t|t*d|jj)|_|jdk(r|xj,d z c_|j.st|j&d |jd |j}d j1|j2xsd }|j4d t6d |d |}|j9|yy)Nz¬ a valid cloud-archive format: '%s'zcloudarchive-%sz¬ a valid cloud-archive pocket: '%s'znot a valid cloud-archive: '%s'CA_ALLOW_CODENAMEz)cloud-archive for %s only supported on %sz for OpenStack r,z [proposed]-/ main)superr.__init__canameany _match_uca _match_uri_match_sourceslist_rlower _filebasepocketUCA_VALID_POCKETSr RELEASE_MAPsetosgetenvcodename capitalizeUCA _description _source_entryjoin components binary_type UCA_ARCHIVE_set_source_entry) selfshortcutkwargsmsgrE validnamesdistcompsline __class__s A/usr/lib/python3/dist-packages/softwareproperties/cloudarchive.pyr6z$CloudArchiveShortcutHandler.__init__Js' )49(MfM DOOH-OOH-++H578=>IC*3/ /kk'') *T[[8kk'') {{//=>LC#C( ({{k)67$++EC#C( (t{{+(BII.A$B$NhOP == *@AKK**,h.A.A.CDEC#C( ("e?4;;3I3I3K2LM ;;* $    . !!mm_Adkk]!DKK=ADHHT__-7E&&'q QtfAeWED  " "4 ( "c|jSN)rHrOs rX descriptionz'CloudArchiveShortcutHandler.descriptionss   rYctSr[)WEB_LINKr\s rXweb_linkz$CloudArchiveShortcutHandler.web_linkwsrYc\tjdtjdy)Nzapt-get install -y T)check) subprocessrunUCA_KEYRING_PACKAGEsplitr\s rXadd_keyz#CloudArchiveShortcutHandler.add_key{s$,-@,ABHHJRVWrYc(tt| Sr[)r5r._encode_filebase)rOsuffixrWs rXriz,CloudArchiveShortcutHandler._encode_filebases0$HJJrYc|jd\}}}|jtvry|jd\}}}|sy||_|xs|j xst |_y)N:Fr1T) rpartitionr= UCA_PREFIXES partitionr7r?UCA_DEFAULT_POCKET)rOrPprefixr<r*r7r?s rXr9z&CloudArchiveShortcutHandler._match_ucase#..s3C||~-!mmC0F A A/A rYcV |jt|S#t$rYywxYwNF)_match_handlerrrrOrPs rXr:z&CloudArchiveShortcutHandler._match_uris0 &&'9('CD D'    ((cV |jt|S#t$rYywxYwrs)rtrrrus rXr;z.CloudArchiveShortcutHandler._match_sourceslists0 &&'A('KL L'  rvct|jj}|jttjk7ry|jj j d\}}}|j d\}}}t||fsy||_|xs|jxst|_ |j|jjy)NFr2r1T) r SourceEntryurihostnamerMrTroallr7r?rprNrV)rOhandlerparsedrEr<r7r?s rXrtz*CloudArchiveShortcutHandler._match_handlers'--/334 ??h{3<< < ' 3 3 5 : : D DS I1f ( 2 23 71fHf%& A A/A  w22499:rYr[)__name__ __module__ __qualname__r6propertyr]r`rgrir9r:r;rt __classcell__)rWs@rXr.r.IsQ')R!!XK   rYr.)rCrcrr<"softwareproperties.shortcuthandlerrrrsoftwareproperties.sourceslistrsoftwareproperties.urir urllib.parser rArGr_rMrnr@rprer.rYrXrsX,  JJE5! i y i   H   H x h h X H h X X X  h!"#$   3 6 ;@ '  +&q),b/brY