3 lá˜_Öã@s8ddlmZmZmZddlZddlmZmZdd„ZdS)é)Úabsolute_importÚdivisionÚprint_functionN)ÚquoteÚ urlencodecCs€d|jfdtj|jƒfd|jjjƒfg}|dk r>|jd|fƒ|j|ƒ||rbdt |ƒt |ƒfnt |ƒt |ƒdœ}dj f|ŽS)NZdigitsZsecretÚ algorithmÚissuerz%s:%s)ÚtypeZlabelÚ parametersz%otpauth://{type}/{label}?{parameters}) Z_lengthÚbase64Z b32encodeZ_keyZ _algorithmÚnameÚupperÚappendÚextendrrÚformat)ZhotpZ type_nameZ account_namerZextra_parametersr Zuriparts©rú/usr/lib64/python3.6/utils.pyÚ _generate_uri s  r) Z __future__rrrr Zsix.moves.urllib.parserrrrrrrÚs