Coverage for src/fastapi_cloud_cli/utils/auth.py: 100%

93 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-11-09 00:25 +0000

1import base64 1abcdefg

2import binascii 1abcdefg

3import json 1abcdefg

4import logging 1abcdefg

5import os 1abcdefg

6import time 1abcdefg

7from typing import Literal 1abcdefg

8 

9from pydantic import BaseModel 1abcdefg

10 

11from .config import get_auth_path 1abcdefg

12 

13logger = logging.getLogger("fastapi_cli") 1abcdefg

14 

15AuthMode = Literal["token", "user"] 1abcdefg

16 

17 

18class AuthConfig(BaseModel): 1abcdefg

19 access_token: str 1abcdefg

20 

21 

22def write_auth_config(auth_data: AuthConfig) -> None: 1abcdefg

23 auth_path = get_auth_path() 2o ^Bp _B`C{ChCiCjCkCq `Br {B|C}ClCmCnCoCs |Bt }B~CaDpCqCrCsCu ~Bv aCbDcDtCuCvCwCw bCx cCdDeDxCyCzCACy dCz eCfDgDBCCCDCECA fCB gChDiDFCGCHCIC

24 logger.debug("Writing auth config to: %s", auth_path) 2o ^Bp _B`C{ChCiCjCkCq `Br {B|C}ClCmCnCoCs |Bt }B~CaDpCqCrCsCu ~Bv aCbDcDtCuCvCwCw bCx cCdDeDxCyCzCACy dCz eCfDgDBCCCDCECA fCB gChDiDFCGCHCIC

25 

26 auth_path.write_text(auth_data.model_dump_json(), encoding="utf-8") 2o ^Bp _B`C{ChCiCjCkCq `Br {B|C}ClCmCnCoCs |Bt }B~CaDpCqCrCsCu ~Bv aCbDcDtCuCvCwCw bCx cCdDeDxCyCzCACy dCz eCfDgDBCCCDCECA fCB gChDiDFCGCHCIC

27 logger.debug("Auth config written successfully") 2o ^Bp _B`C{ChCiCjCkCq `Br {B|C}ClCmCnCoCs |Bt }B~CaDpCqCrCsCu ~Bv aCbDcDtCuCvCwCw bCx cCdDeDxCyCzCACy dCz eCfDgDBCCCDCECA fCB gChDiDFCGCHCIC

28 

29 

30def delete_auth_config() -> None: 1abcdefg

31 auth_path = get_auth_path() 2h C 0H.H1H/HD E F i G 2H:H3H;HH I J j K 4H=H5H?HL M N k O 6H@H7H[HP Q R l S 8H]H9H^HT U V m W !H_H#H`HX Y Z n 0 $H{H%H|H1 2 3

32 logger.debug("Deleting auth config at: %s", auth_path) 2h C 0H.H1H/HD E F i G 2H:H3H;HH I J j K 4H=H5H?HL M N k O 6H@H7H[HP Q R l S 8H]H9H^HT U V m W !H_H#H`HX Y Z n 0 $H{H%H|H1 2 3

33 

34 if auth_path.exists(): 2h C 0H.H1H/HD E F i G 2H:H3H;HH I J j K 4H=H5H?HL M N k O 6H@H7H[HP Q R l S 8H]H9H^HT U V m W !H_H#H`HX Y Z n 0 $H{H%H|H1 2 3

35 auth_path.unlink() 2h C 0H1HD E F i G 2H3HH I J j K 4H5HL M N k O 6H7HP Q R l S 8H9HT U V m W !H#HX Y Z n 0 $H%H1 2 3

36 logger.debug("Auth config deleted successfully") 2h C 0H1HD E F i G 2H3HH I J j K 4H5HL M N k O 6H7HP Q R l S 8H9HT U V m W !H#HX Y Z n 0 $H%H1 2 3

37 else: 

38 logger.debug("Auth config file doesn't exist, nothing to delete") 2.H/H:H;H=H?H@H[H]H^H_H`H{H|H

39 

40 

41def read_auth_config() -> AuthConfig | None: 1abcdefg

42 auth_path = get_auth_path() 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

43 logger.debug("Reading auth config from: %s", auth_path) 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

44 

45 if not auth_path.exists(): 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

46 logger.debug("Auth config file doesn't exist") 2a xDyDzDADBDCDpGqGDDiGEDFDGDHDIDJC4CjDkD5C_BJDKDLDMDNDsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCLCDGODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8DEGFG9DjG!D#D$D%D'DMC8ClDmD9C{B(D)D*D+D,DHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNCOCSG-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdETGUGeEkGfEgEhEiEjEPC$CnDoD%C}BkElEmEnEoEWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCRC7GpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJE8G9GKElGLEMENEOEPESC)CpDqD*CaCQERESETEUE#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTCUC/GVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E:G;G)EmG*E+E,E-E.EVC-CrDsD.CcC/E:E;E=E?E?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCXCaH@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFbHcHlFnGmFnFoFpFqFYC;CtDuD=CeCrFsFtFuFvFeHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZC0CpHwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFqHrHRFoGSFTFUFVFWF1C[CvDwD]CgCXFYFZF0F1FtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C3CEH2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

47 return None 2a xDyDzDADBDCDpGqGDDiGEDFDGDHDIDJC4CjDkD5C_BJDKDLDMDNDsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCLCDGODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8DEGFG9DjG!D#D$D%D'DMC8ClDmD9C{B(D)D*D+D,DHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNCOCSG-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdETGUGeEkGfEgEhEiEjEPC$CnDoD%C}BkElEmEnEoEWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCRC7GpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJE8G9GKElGLEMENEOEPESC)CpDqD*CaCQERESETEUE#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTCUC/GVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E:G;G)EmG*E+E,E-E.EVC-CrDsD.CcC/E:E;E=E?E?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCXCaH@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFbHcHlFnGmFnFoFpFqFYC;CtDuD=CeCrFsFtFuFvFeHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZC0CpHwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFqHrHRFoGSFTFUFVFWF1C[CvDwD]CgCXFYFZF0F1FtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C3CEH2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

48 

49 logger.debug("Auth config loaded successfully") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbrGhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;bGG=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cVG6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMd!GNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqeresete=GuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafdHbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+fsH,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

50 return AuthConfig.model_validate_json(auth_path.read_text(encoding="utf-8")) 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbrGhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;bGG=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cVG6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMd!GNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqeresete=GuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafdHbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+fsH,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

51 

52 

53def _get_auth_token() -> str | None: 1abcdefg

54 logger.debug("Getting auth token") 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

55 auth_data = read_auth_config() 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

56 

57 if auth_data is None: 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

58 logger.debug("No auth data found") 2a xDyDzDADBDCDpGqGDDiGEDFDGDHDIDJC4CjDkD5C_BJDKDLDMDNDsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCLCDGODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8DEGFG9DjG!D#D$D%D'DMC8ClDmD9C{B(D)D*D+D,DHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNCOCSG-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdETGUGeEkGfEgEhEiEjEPC$CnDoD%C}BkElEmEnEoEWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCRC7GpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJE8G9GKElGLEMENEOEPESC)CpDqD*CaCQERESETEUE#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTCUC/GVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E:G;G)EmG*E+E,E-E.EVC-CrDsD.CcC/E:E;E=E?E?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCXCaH@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFbHcHlFnGmFnFoFpFqFYC;CtDuD=CeCrFsFtFuFvFeHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZC0CpHwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFqHrHRFoGSFTFUFVFWF1C[CvDwD]CgCXFYFZF0F1FtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C3CEH2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

59 return None 2a xDyDzDADBDCDpGqGDDiGEDFDGDHDIDJC4CjDkD5C_BJDKDLDMDNDsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCLCDGODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8DEGFG9DjG!D#D$D%D'DMC8ClDmD9C{B(D)D*D+D,DHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNCOCSG-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdETGUGeEkGfEgEhEiEjEPC$CnDoD%C}BkElEmEnEoEWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCRC7GpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJE8G9GKElGLEMENEOEPESC)CpDqD*CaCQERESETEUE#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTCUC/GVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E:G;G)EmG*E+E,E-E.EVC-CrDsD.CcC/E:E;E=E?E?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCXCaH@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFbHcHlFnGmFnFoFpFqFYC;CtDuD=CeCrFsFtFuFvFeHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZC0CpHwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFqHrHRFoGSFTFUFVFWF1C[CvDwD]CgCXFYFZF0F1FtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C3CEH2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

60 

61 logger.debug("Auth token retrieved successfully") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbrGhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;bGG=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cVG6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMd!GNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqeresete=GuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafdHbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+fsH,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

62 return auth_data.access_token 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbrGhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;bGG=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cVG6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMd!GNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqeresete=GuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafdHbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+fsH,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

63 

64 

65def _is_jwt_expired(token: str) -> bool: 1abcdefg

66 try: 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMH'HFH-Fo ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNH(HGH;Fq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOH)HHH[Fs |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPH*HIH`Fu ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQH+HJH~Fw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRH,HKHdGy dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSH-HLHhGA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

67 parts = token.split(".") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMH'HFH-Fo ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNH(HGH;Fq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOH)HHH[Fs |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPH*HIH`Fu ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQH+HJH~Fw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRH,HKHdGy dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSH-HLHhGA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

68 

69 if len(parts) != 3: 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMH'HFH-Fo ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNH(HGH;Fq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOH)HHH[Fs |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPH*HIH`Fu ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQH+HJH~Fw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRH,HKHdGy dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSH-HLHhGA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

70 logger.debug("Invalid JWT format: expected 3 parts, got %d", len(parts)) 2'H^B(H`B)H|B*H~B+HbC,HdC-HfC

71 return True 2'H^B(H`B)H|B*H~B+HbC,HdC-HfC

72 

73 payload = parts[1] 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMHFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNHGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOHHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPHIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQHJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRHKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSHLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

74 

75 # Add padding if needed (JWT uses base64url encoding without padding) 

76 if padding := len(payload) % 4: 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMHFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNHGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOHHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPHIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQHJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRHKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSHLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

77 payload += "=" * (4 - padding) 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?gTHMHFH@g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjUHNHGHJjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@lVHOHHH[l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJoWHPHIHKoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qXHQHJH]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtYHRHKHLtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vZHSHLH^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

78 

79 payload = payload.replace("-", "+").replace("_", "/") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMHFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNHGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOHHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPHIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQHJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRHKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSHLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

80 decoded_bytes = base64.b64decode(payload) 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FTHMHFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FUHNHGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FVHOHHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FWHPHIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FXHQHJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGYHRHKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGZHSHLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

81 payload_data = json.loads(decoded_bytes) 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FMHFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FNHGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FOHHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FPHIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FQHJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGRHKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGSHLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

82 

83 exp = payload_data.get("exp") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

84 

85 if exp is None: 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?g*F+F,FFH-Fo p @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIj.F/F:FGH;Fq r JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@l=F?F@FHH[Fs t [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJo]F^F_FIH`Fu v KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[q{F|F}FJH~Fw x ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtaGbGcGKHdGy z LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]veGfGgGLHhGA B ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

86 logger.debug("No 'exp' claim found in token") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?gFH@g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjGHJjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@lHH[l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJoIHKoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qJH]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtKHLtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vLH^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

87 

88 return False 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?gFH@g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjGHJjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@lHH[l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJoIHKoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qJH]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtKHLtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vLH^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

89 

90 if not isinstance(exp, int): # pragma: no cover 2*F+F,F-Fo p 4 .F/F:F;Fq r 5 =F?F@F[Fs t 6 ]F^F_F`Fu v 7 {F|F}F~Fw x 8 aGbGcGdGy z 9 eGfGgGhGA B !

91 logger.debug("Invalid 'exp' claim: expected int, got %s", type(exp)) 

92 

93 return True 

94 

95 current_time = time.time() 2*F+F,F-Fo p 4 .F/F:F;Fq r 5 =F?F@F[Fs t 6 ]F^F_F`Fu v 7 {F|F}F~Fw x 8 aGbGcGdGy z 9 eGfGgGhGA B !

96 

97 is_expired = current_time >= exp 2*F+F,F-Fo p 4 .F/F:F;Fq r 5 =F?F@F[Fs t 6 ]F^F_F`Fu v 7 {F|F}F~Fw x 8 aGbGcGdGy z 9 eGfGgGhGA B !

98 

99 logger.debug( 2*F+F,F-Fo p 4 .F/F:F;Fq r 5 =F?F@F[Fs t 6 ]F^F_F`Fu v 7 {F|F}F~Fw x 8 aGbGcGdGy z 9 eGfGgGhGA B !

100 "Token expiration check: current=%d, exp=%d, expired=%s", 

101 current_time, 

102 exp, 

103 is_expired, 

104 ) 

105 

106 return is_expired 2*F+F,F-Fo p 4 .F/F:F;Fq r 5 =F?F@F[Fs t 6 ]F^F_F`Fu v 7 {F|F}F~Fw x 8 aGbGcGdGy z 9 eGfGgGhGA B !

107 except (binascii.Error, json.JSONDecodeError) as e: 2THMHUHNHVHOHWHPHXHQHYHRHZHSH

108 logger.debug("Error parsing JWT token: %s", e) 2THMHUHNHVHOHWHPHXHQHYHRHZHSH

109 

110 return True 2THMHUHNHVHOHWHPHXHQHYHRHZHSH

111 

112 

113class Identity: 1abcdefg

114 def __init__(self) -> None: 1abcdefg

115 self._user_token = _get_auth_token() 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

116 self._deploy_token: str | None = os.environ.get("FASTAPI_CLOUD_TOKEN") 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?gpGqGo ^BDDp iGED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDrGhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCfyLCDG0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjEGFGq `B9Dr jG!DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmDGG=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNC6yOCSGikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@lTGUGs |BeEt kGfE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coDVG6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCwzRC7G1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJo8G9Gu ~BKEv lGLEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqD!GNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTC:zUC/Gjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[q:G;Gw bC)Ex mG*E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesD=Guevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCNAXCaH2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKtbHcHy dClFz nGmFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDdHbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZCdB0CpHkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vqHrHA fCRFB oGSF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwDsH,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C4B3CEH3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

117 

118 @property 1abcdefg

119 def user_token(self) -> str | None: 1abcdefg

120 return self._user_token 2a tgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gpGqG@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkh# $ % ' JC( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbrGhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZhsG`CtGuGvGwG{ChCxGyGzGAGBGCGiCjCkCKCLCDG0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibiD ciNbObdiE eiPbQbRbfigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7i8i9i!i#ib $i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjEGFGJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jSbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;bGG=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkHG|CIGJGKGLG}ClCMGNGOGPGQGRGmCnCoCNCOCSGikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkH VkucvcWkI XkwcxcycYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglJ hliljlklllmlnlolplqlrlsltlc ulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@lTGUG[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5cVG6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0mWG~CXGYGZG0GaDpC1G2G3G4G5G6GqCrCsCQCRC7G1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncnL dnbdcdenM fnddedfdgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8n9n!n#n$nd %n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJo8G9GKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4ogdhdidjdSCkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMd!GNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpip#GbD$G%G'G(GcDtC)G*G+G,G-G.GuCvCwCTCUC/GjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpP Wp,d-dXpQ Yp.d/d:dZp0p1p2p3p4p5p6p7p8p9p!p#p$p%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[p]p^p_p`p{p|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqrqsqtquqe vqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q:G;G]q^q_q`q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmr;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqeresete=GuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r?GdD@G[G]G^GeDxC_G`G{G|G}G~GyCzCACWCXCaH2r3r4r5r6r7r8r9r!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~rasbscsdsT es0e1efsU gs2e3e4ehsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s!s#s$s%sf 's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtbHcHLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafdHbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t^t_t`t{t|t}t~taubucudueufuguhuiujueHfDfHgHhHiHgDBCjHkHlHmHnHoHCCDCECZC0CpHkulumunuoupuqurusutuuuvuwuxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuX XuHfIfYuY ZuJfKfLf0u1u2u3u4u5u6u7u8u9u!u#u$u%u'u(u)u*u+u,u-u.u/u:u;u=u?u@u[u]u^u_u`u{u|u}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvsvtvuvvvg wvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,v-v.v/v:v;v=v?v@v[v]vqHrH^v_v`v{v|v}v~vawbwcwdwewfwgwhwiwjwkwlwmwnwMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+fsH,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2wtHhDuHvHwHxHiDFCyHzHAHBHCHDHGCHCIC2C3CEH3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxex1 fxogpggx2 hxqgrgsgixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x#x$x%x'x

121 

122 @property 1abcdefg

123 def deploy_token(self) -> str | None: 1abcdefg

124 return self._deploy_token 2jDkDlDmDnDoDpDqDrDsDtDuDvDwD

125 

126 def is_user_token_expired(self) -> bool: 1abcdefg

127 if not self._user_token: 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp iG@g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br jGJjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt kG[l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv lGKoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx mG]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz nGLtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB oG^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

128 return True 2iGjGkGlGmGnGoG

129 

130 return _is_jwt_expired(self._user_token) 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

131 

132 def is_logged_in(self) -> bool: 1abcdefg

133 if self._user_token is None: 2a (x)xtg*xugvgwgxgygzgxDAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3gyD4g5g6g:x7gzD8g9g!g#g$g%g;x=x'gAD(g)g*g+g,g-g?x.gBD/g:g;g@x=gCD?go ^BDDp ED@g[g]g[x^gFD_g`g{g|gGD}g]x~gah^xbhchHDdhehfhghhhih_x`xIDjh{x|xkh}x~x# $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMblhmhnhohC phJDqhrhshthuhvhwhxhyhzhAhBhayKDChDhEhFhGhHhbyLDIhJhKhLhMhNhOhPhQhRhShcyMDdyThUheyVhWhNDXhYhZhhCiCjCkCKCfyLC0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymynyOD$hoy%h'hPD(h)h*h+hQD,h-h.hRD/h:h;hpy=h?hqyrySD@h[h]h^h_hsyTD`h{h|h}htyUD~hVDaibiD ciNbObWDXDdiE eiPbQbRbfigiuyhiiijikivyliYDminioipiqirisiwytiuiviwixiZDyixyziAiyyBi0DCiDiEiFiGiHiIiJizyAyByKiLiMiNiCy1DOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy2D8i9i!i#i6CEy7Cb FyGy$iHy%i'i(i)i*i+i3D,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjlj4DmjnjojNypj5DqjrjsjtjujvjOyPywj6DxjyjzjAjBjCjQyDj7DEjFjGjRyHj8DIjq `B9Dr !DJjKjLjSyMj#DNjOjPjQj$DRjTySjTjUyUjVj%DWjXjYjZj0j1jVyWy'D2jXyYy3jZy0ySbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{Bncocpcqcrcsctc4j5j6j7jG 8j(D9j!j#j$j%j'j(j)j*j+j,j-j1y)D.j/j:j;j=j?j2y*D@j[j]j^j_j`j{j|j}j~jak3y+D4ybkck5ydkek,DfkgkhklCmCnCoCNC6yOCikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'y-Duk(yvkwk.DxkykzkAk/DBkCkDk:DEkFkGk)yHkIk*y+y;DJkKkLkMkNk,y=DOkPkQkRk-y?DSk@DTkUkH Vkucvc[D]DWkI XkwcxcycYkZk.y0k1k2k3k/y4k^D5k6k7k8k9k!k#k:y$k%k'k(k)k_D*k;y+k,k=y-k`D.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{D{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^y|Dqlrlsltl!C_y#Cc `y{yul|yvlwlxlylzlAl}DBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l~D5l6l7ldz8laE9l!l#l$l%l'lezfz(lbE)l*l+l,l-l.lgz/lcE:l;l=lhz?ldE@ls |BeEt fE[l]l^liz_lgE`l{l|l}lhE~ljzambmkzcmdmiEemfmgmhmimjmlzmzjEkmnzozlmpzqzzcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadmmnmompmK qmkErmsmtmumvmwmxmymzmAmBmCmrzlEDmEmFmGmHmImszmEJmKmLmMmNmOmPmQmRmSmTmtznEuzUmVmvzWmXmoEYmZm0mpCqCrCsCQCwzRC1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEzpE%mFz'm(mqE)m*m+m,mrE-m.m/msE:m;m=mGz?m@mHzIztE[m]m^m_m`mJzuE{m|m}m~mKzvEanwEbncnL dnbdcdxEyEenM fnddedfdgnhnLzinjnknlnMzmnzEnnonpnqnrnsntnNzunvnwnxnynAEznOzAnBnPzCnBEDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzCEPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUzDE9n!n#n$n'CVz(Cd WzXz%nYz'n(n)n*n+n,nEE-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomoFEnooopo4zqoGErosotouovowo5z6zxoHEyozoAoBoCoDo7zEoIEFoGoHo8zIoJEJou ~BKEv LEKoLoMo9zNoMEOoPoQoRoNESo!zToUo#zVoWoOEXoYoZo0o1o2o$z%zPE3o'z(z4o)z*zgdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+d5o6o7o8oO 9oQE!o#o$o%o'o(o)o*o+o,o-o.o+zRE/o:o;o=o?o@o,zSE[o]o^o_o`o{o|o}o~oapbp-zTE.zcpdp/zepfpUEgphpiptCuCvCwCTC:zUCjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zVEvp`zwpxpWEypzpApBpXECpDpEpYEFpGpHp{zIpJp|z}zZEKpLpMpNpOp~z0EPpQpRpSpaA1ETp2EUpVpP Wp,d-d3E4EXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p5E6p7p8p9p!p#p$pdA%p'p(p)p*p6E+peA,p-pfA.p7E/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA8E|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkA9Erqsqtquq+ClA,Ce mAnAvqoAwqxqyqzqAqBq!ECqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q#E6q7q8quA9q$E!q#q$q%q'q(qvAwA)q%E*q+q,q-q.q/qxA:q'E;q=q?qyA@q(E[qw bC)Ex *E]q^q_qzA`q+E{q|q}q~q,EarAAbrcrBAdrer-EfrgrhrirjrkrCADA.ElrEAFAmrGAHA;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-Ceefegeheiejekelemeneoepeqereseteuevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZenrorprqrS rr/EsrtrurvrwrxryrzrArBrCrDrIA:EErFrGrHrIrJrJA;EKrLrMrNrOrPrQrRrSrTrUrKA=ELAVrWrMAXrYr?EZr0r1rxCyCzCACWCNAXC2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA@E'rWA(r)r[E*r+r,r-r]E.r/r:r^E;r=r?rXA@r[rYAZA_E]r^r_r`r{r0A`E|r}r~ras1A{Ebs|EcsdsT es0e1e}E~EfsU gs2e3e4ehsis2Ajskslsms3AnsaFospsqsrssstsus4AvswsxsyszsbFAs5ABsCs6ADscFEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AdFQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#AeF!s#s$s%s/C$A:Cf %A'A's(A(s)s*s+s,s-sfF.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-AetftgthtitjtktltmtntgFotptqt.ArthFstttutvtwtxt/A:AytiFztAtBtCtDtEt;AFtjFGtHtIt=AJtkFKty dClFz mFLtMtNt?AOtnFPtQtRtStoFTt@AUtVt[AWtXtpFYtZt0t1t2t3t]A^AqF4t_A`A5t{A|A5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGf6t7t8t9tW !trF#t$t%t't(t)t*t+t,t-t.t/t}AsF:t;t=t?t@t[t~AtF]t^t_t`t{t|t}t~taubucuaBuFbBdueucBfuguvFhuiujuBCCCDCECZCdB0CkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwFwumBxuyuxFzuAuBuCuyFDuEuFuzFGuHuIunBJuKuoBpBAFLuMuNuOuPuqBBFQuRuSuTurBCFUuDFVuWuX XuHfIfEFFFYuY ZuJfKfLf0u1usB2u3u4u5utB6uGF7u8u9u!u#u$u%uuB'u(u)u*u+uHF,uvB-u.uwB/uIF:u;u=u?u@u[u]u^uxByBzB_u`u{u|uABJF}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBKFsvtvuvvv?CCB@Cg DBEBwvFBxvyvzvAvBvCvLFDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6vMF7v8v9vLB!vNF#v$v%v'v(v)vMBNB*vOF+v,v-v.v/v:vOB;vPF=v?v@vPB[vQF]vA fCRFB SF^v_v`vQB{vTF|v}v~vawUFbwRBcwdwSBewfwVFgwhwiwjwkwlwTBUBWFmwVBWBnwXBYBMfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngowpwqwrw0 swXFtwuwvwwwxwywzwAwBwCwDwEwZBYFFwGwHwIwJwKw0BZFLwMwNwOwPwQwRwSwTwUwVw1B0F2BWwXw3BYwZw1F0w1w2wFCGCHCIC2C4B3C3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B2F(w%B)w*w3F+w,w-w.w4F/w:w;w5F=w?w@w'B[w]w(B)B6F^w_w`w{w|w*B7F}w~waxbx+B8Fcx9Fdxex1 fxogpg!F#Fgx2 hxqgrgsgixjx,Bkxlxmxnx-Box$Fpxqxrxsxtxuxvx.BwxxxyxzxAx%FBx/BCxDx:BEx'FFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@B(FRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B)F#x$x%x'x^C]B_C

134 logger.debug("Login status: False (no token)") 2a xDyDzDADBDCDDDEDFDGDHDIDJC4C5C_BJDKDLDMDNDhCiCjCkCKCLCODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8D9D!D#D$D%D'DMC8C9C{B(D)D*D+D,DlCmCnCoCNCOC-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdEeEfEgEhEiEjEPC$C%C}BkElEmEnEoEpCqCrCsCQCRCpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJEKELEMENEOEPESC)C*CaCQERESETEUEtCuCvCwCTCUCVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E)E*E+E,E-E.EVC-C.CcC/E:E;E=E?ExCyCzCACWCXC@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFlFmFnFoFpFqFYC;C=CeCrFsFtFuFvFBCCCDCECZC0CwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFRFSFTFUFVFWF1C[C]CgCXFYFZF0F1FFCGCHCIC2C3C2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

135 return False 2a xDyDzDADBDCDDDEDFDGDHDIDJC4C5C_BJDKDLDMDNDhCiCjCkCKCLCODPDQDRDSDTDUDVDWDXDYDZD0D1D2D6C7Cb 3D4D5D6D7D8D9D!D#D$D%D'DMC8C9C{B(D)D*D+D,DlCmCnCoCNCOC-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D!C#Cc }D~DaEbEcEdEeEfEgEhEiEjEPC$C%C}BkElEmEnEoEpCqCrCsCQCRCpEqErEsEtEuEvEwExEyEzEAEBECEDE'C(Cd EEFEGEHEIEJEKELEMENEOEPESC)C*CaCQERESETEUEtCuCvCwCTCUCVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E+C,Ce !E#E$E%E'E(E)E*E+E,E-E.EVC-C.CcC/E:E;E=E?ExCyCzCACWCXC@E[E]E^E_E`E{E|E}E~EaFbFcFdFeF/C:Cf fFgFhFiFjFkFlFmFnFoFpFqFYC;C=CeCrFsFtFuFvFBCCCDCECZC0CwFxFyFzFAFBFCFDFEFFFGFHFIFJFKF?C@Cg LFMFNFOFPFQFRFSFTFUFVFWF1C[C]CgCXFYFZF0F1FFCGCHCIC2C3C2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F^C_C

136 

137 if self.is_user_token_expired(): 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?go ^Bp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjq `Br JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@ls |Bt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJou ~Bv KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qw bCx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKty dCz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vA fCB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

138 logger.debug("Login status: False (token expired)") 2o ^B4 q `B5 s |B6 u ~B7 w bC8 y dC9 A fC!

139 return False 2o ^B4 q `B5 s |B6 u ~B7 w bC8 y dC9 A fC!

140 

141 logger.debug("Login status: True") 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?gp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjr JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@lt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJov KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

142 return True 2(x)xtg*xugvgwgxgygzgAg+xBgCgDgEgFgGgHgIgJg,xKgLgMgNgOgPg-x.xQgRgSgTg/xUgVgWgXgYgZg0g1g2g3g4g5g6g:x7g8g9g!g#g$g%g;x=x'g(g)g*g+g,g-g?x.g/g:g;g@x=g?gp @g[g]g[x^g_g`g{g|g}g]x~gah^xbhchdhehfhghhhih_x`xjh{x|xkh}x~x# $ % ' ( ) * + , - . / : ; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblbmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMblhmhnhohC phqhrhshthuhvhwhxhyhzhAhBhayChDhEhFhGhHhbyIhJhKhLhMhNhOhPhQhRhShcydyThUheyVhWhXhYhZhfy0h1h2h3hgyhy4h5hiyjyky6h7h8h9h!h#hlymyny$hoy%h'h(h)h*h+h,h-h.h/h:h;hpy=h?hqyry@h[h]h^h_hsy`h{h|h}hty~haibiD ciNbObdiE eiPbQbRbfigiuyhiiijikivyliminioipiqirisiwytiuiviwixiyixyziAiyyBiCiDiEiFiGiHiIiJizyAyByKiLiMiNiCyOiPiQiRiSiTiUiViWiXiYiF Zi0i1i2i3i4i5i6i7iDy8i9i!i#iEyFyGy$iHy%i'i(i)i*i+i,iIy-i.i/i:i;i=i?i@i[iJy]i^i_i`i{i|iKyLy}i~iajbjMycjdjejfjgjhjijjjkjljmjnjojNypjqjrjsjtjujvjOyPywjxjyjzjAjBjCjQyDjEjFjGjRyHjIjr JjKjLjSyMjNjOjPjQjRjTySjTjUyUjVjWjXjYjZj0j1jVyWy2jXyYy3jZy0ySbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_bi `b{b|b}b~bacbcccdcecfcgchcicjckclcmcncocpcqcrcsctc4j5j6j7jG 8j9j!j#j$j%j'j(j)j*j+j,j-j1y.j/j:j;j=j?j2y@j[j]j^j_j`j{j|j}j~jak3y4ybkck5ydkekfkgkhk6yikjkkklk7y8ymknk9y!y#yokpkqkrksktk$y%y'yuk(yvkwkxkykzkAkBkCkDkEkFkGk)yHkIk*y+yJkKkLkMkNk,yOkPkQkRk-ySkTkUkH VkucvcWkI XkwcxcycYkZk.y0k1k2k3k/y4k5k6k7k8k9k!k#k:y$k%k'k(k)k*k;y+k,k=y-k.k/k:k;k=k?k@k[k?y@y[y]k^k_k`k]y{k|k}k~kalblcldlelflglJ hliljlklllmlnlolpl^yqlrlsltl_y`y{yul|yvlwlxlylzlAlBl}yClDlElFlGlHlIlJlKl~yLlMlNlOlPlQlazbzRlSlTlUlczVlWlXlYlZl0l1l2l3l4l5l6l7ldz8l9l!l#l$l%l'lezfz(l)l*l+l,l-l.lgz/l:l;l=lhz?l@lt [l]l^liz_l`l{l|l}l~ljzambmkzcmdmemfmgmhmimjmlzmzkmnzozlmpzqzzcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|c}c~cadmmnmompmK qmrmsmtmumvmwmxmymzmAmBmCmrzDmEmFmGmHmImszJmKmLmMmNmOmPmQmRmSmTmtzuzUmVmvzWmXmYmZm0mwz1m2m3m4mxzyz5m6mzzAzBz7m8m9m!m#m$mCzDzEz%mFz'm(m)m*m+m,m-m.m/m:m;m=mGz?m@mHzIz[m]m^m_m`mJz{m|m}m~mKzanbncnL dnbdcdenM fnddedfdgnhnLzinjnknlnMzmnnnonpnqnrnsntnNzunvnwnxnynznOzAnBnPzCnDnEnFnGnHnInJnKnQzRzSzLnMnNnOnTzPnQnRnSnTnUnVnWnXnYnZnN 0n1n2n3n4n5n6n7n8nUz9n!n#n$nVzWzXz%nYz'n(n)n*n+n,n-nZz.n/n:n;n=n?n@n[n]n0z^n_n`n{n|n}n1z2z~naoboco3zdoeofogohoiojokolomonooopo4zqorosotouovowo5z6zxoyozoAoBoCoDo7zEoFoGoHo8zIoJov KoLoMo9zNoOoPoQoRoSo!zToUo#zVoWoXoYoZo0o1o2o$z%z3o'z(z4o)z*zgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d5o6o7o8oO 9o!o#o$o%o'o(o)o*o+o,o-o.o+z/o:o;o=o?o@o,z[o]o^o_o`o{o|o}o~oapbp-z.zcpdp/zepfpgphpip:zjpkplpmp;z=znpop?z@z[zppqprpsptpup]z^z_zvp`zwpxpypzpApBpCpDpEpFpGpHp{zIpJp|z}zKpLpMpNpOp~zPpQpRpSpaATpUpVpP Wp,d-dXpQ Yp.d/d:dZp0pbA1p2p3p4pcA5p6p7p8p9p!p#p$pdA%p'p(p)p*p+peA,p-pfA.p/p:p;p=p?p@p[p]pgAhAiA^p_p`p{pjA|p}p~paqbqcqdqeqfqgqhqR iqjqkqlqmqnqoqpqqqkArqsqtquqlAmAnAvqoAwqxqyqzqAqBqCqpADqEqFqGqHqIqJqKqLqqAMqNqOqPqQqRqrAsASqTqUqVqtAWqXqYqZq0q1q2q3q4q5q6q7q8quA9q!q#q$q%q'q(qvAwA)q*q+q,q-q.q/qxA:q;q=q?qyA@q[qx ]q^q_qzA`q{q|q}q~qarAAbrcrBAdrerfrgrhrirjrkrCADAlrEAFAmrGAHA;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZenrorprqrS rrsrtrurvrwrxryrzrArBrCrDrIAErFrGrHrIrJrJAKrLrMrNrOrPrQrRrSrTrUrKALAVrWrMAXrYrZr0r1rNA2r3r4r5rOAPA6r7rQARASA8r9r!r#r$r%rTAUAVA'rWA(r)r*r+r,r-r.r/r:r;r=r?rXA@r[rYAZA]r^r_r`r{r0A|r}r~ras1AbscsdsT es0e1efsU gs2e3e4ehsis2Ajskslsms3Ansospsqsrssstsus4AvswsxsyszsAs5ABsCs6ADsEsFsGsHsIsJsKsLs7A8A9AMsNsOsPs!AQsRsSsTsUsVsWsXsYsZs0sV 1s2s3s4s5s6s7s8s9s#A!s#s$s%s$A%A'A's(A(s)s*s+s,s-s.s)A/s:s;s=s?s@s[s]s^s*A_s`s{s|s}s~s+A,Aatbtctdt-Aetftgthtitjtktltmtntotptqt.Artstttutvtwtxt/A:AytztAtBtCtDtEt;AFtGtHtIt=AJtKtz LtMtNt?AOtPtQtRtStTt@AUtVt[AWtXtYtZt0t1t2t3t]A^A4t_A`A5t{A|A5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGf6t7t8t9tW !t#t$t%t't(t)t*t+t,t-t.t/t}A:t;t=t?t@t[t~A]t^t_t`t{t|t}t~taubucuaBbBdueucBfuguhuiujudBkulumunueBfBoupugBhBiBqurusutuuuvujBkBlBwumBxuyuzuAuBuCuDuEuFuGuHuIunBJuKuoBpBLuMuNuOuPuqBQuRuSuTurBUuVuWuX XuHfIfYuY ZuJfKfLf0u1usB2u3u4u5utB6u7u8u9u!u#u$u%uuB'u(u)u*u+u,uvB-u.uwB/u:u;u=u?u@u[u]u^uxByBzB_u`u{u|uAB}u~uavbvcvdvevfvgvhvivZ jvkvlvmvnvovpvqvrvBBsvtvuvvvCBDBEBwvFBxvyvzvAvBvCvDvGBEvFvGvHvIvJvKvLvMvHBNvOvPvQvRvSvIBJBTvUvVvWvKBXvYvZv0v1v2v3v4v5v6v7v8v9vLB!v#v$v%v'v(v)vMBNB*v+v,v-v.v/v:vOB;v=v?v@vPB[v]vB ^v_v`vQB{v|v}v~vawbwRBcwdwSBewfwgwhwiwjwkwlwTBUBmwVBWBnwXBYBMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngowpwqwrw0 swtwuwvwwwxwywzwAwBwCwDwEwZBFwGwHwIwJwKw0BLwMwNwOwPwQwRwSwTwUwVw1B2BWwXw3BYwZw0w1w2w4B3w4w5w6w5B6B7w8w7B8B9B9w!w#w$w%w'w!B#B$B(w%B)w*w+w,w-w.w/w:w;w=w?w@w'B[w]w(B)B^w_w`w{w|w*B}w~waxbx+Bcxdxex1 fxogpggx2 hxqgrgsgixjx,Bkxlxmxnx-Boxpxqxrxsxtxuxvx.BwxxxyxzxAxBx/BCxDx:BExFxGxHxIxJxKxLxMx;B=B?BNxOxPxQx@BRxSxTxUxVxWxXxYxZx0x1x3 2x3x4x5x6x7x8x9x!x[B#x$x%x'x]B

143 

144 def has_deploy_token(self) -> bool: 1abcdefg

145 if self._deploy_token is None: 2a # $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abjDbbcbdbebfbgbkDhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMbhCiCjCkCKCLCNbObPbQbRb6C7Cb SbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+blD,b-b.b/b:b;bmD=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{BncocpcqcrcsctclCmCnCoCNCOCucvcwcxcyc!C#Cc zcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZcnD0c1c2c3c4c5coD6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadpCqCrCsCQCRCbdcdddedfd'C(Cd gdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdpDHdIdJdKdLdMdqDNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+dtCuCvCwCTCUC,d-d.d/d:d+C,Ce ;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-CeefegeheiejekelemenerDoepeqeresetesDuevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZexCyCzCACWCXC0e1e2e3e4e/C:Cf 5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_etD`e{e|e}e~eafuDbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGfBCCCDCECZC0CHfIfJfKfLf?C@Cg MfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$fvD%f'f(f)f*f+fwD,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngFCGCHCIC2C3Cogpgqgrgsg^C_C

146 logger.debug("Deploy token is not provided") 2a # $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMbhCiCkCKCLCNbObPbRb7Cb SbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{BncocpcqcrcsctclCmCoCNCOCucvcwcyc#Cc zcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadpCqCsCQCRCbdcdddfd(Cd gdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+dtCuCwCTCUC,d-d.d:d,Ce ;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-Ceefegeheiejekelemeneoepeqereseteuevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZexCyCACWCXC0e1e2e4e:Cf 5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGfBCCCECZC0CHfIfJfLf@Cg MfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngFCGCIC2C3Cogpgqgsg_C

147 return False 2a # $ % ' JC( ) * + , - . / : ; = ? @ 4C[ ] ^ _ ` { | } ~ abbbcbdbebfbgbhbibjbkblb5Cmbnbh obpbqbrbsbtbubvbwbxbybzbAbBbCb4 DbEbFb_BGbHbIbJbKbLbMbhCiCkCKCLCNbObPbRb7Cb SbTbUbVbMCWbXbYbZb0b1b2b3b4b5b6b7b8b8C9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b9C^b_bi `b{b|b}b~bacbcccdcecfcgchcicjc5 kclcmc{BncocpcqcrcsctclCmCoCNCOCucvcwcyc#Cc zcAcBcCcPCDcEcFcGcHcIcJcKcLcMcNcOcPc$CQcRcScTcUcVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c%C#c$cj %c'c(c)c*c+c,c-c.c/c:c;c=c?c@c6 [c]c^c}B_c`c{c|c}c~cadpCqCsCQCRCbdcdddfd(Cd gdhdidjdSCkdldmdndodpdqdrdsdtdudvdwd)CxdydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRd*CSdTdk UdVdWdXdYdZd0d1d2d3d4d5d6d7d8d7 9d!d#daC$d%d'd(d)d*d+dtCuCwCTCUC,d-d.d:d,Ce ;d=d?d@dVC[d]d^d_d`d{d|d}d~daebecede-Ceefegeheiejekelemeneoepeqereseteuevewexeye.CzeAel BeCeDeEeFeGeHeIeJeKeLeMeNeOePe8 QeReSecCTeUeVeWeXeYeZexCyCACWCXC0e1e2e4e:Cf 5e6e7e8eYC9e!e#e$e%e'e(e)e*e+e,e-e.e;C/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefff=Cgfhfm ifjfkflfmfnfofpfqfrfsftfufvfwf9 xfyfzfeCAfBfCfDfEfFfGfBCCCECZC0CHfIfJfLf@Cg MfNfOfPf1CQfRfSfTfUfVfWfXfYfZf0f1f2f[C3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f]C;f=fn ?f@f[f]f^f_f`f{f|f}f~fagbgcgdg! egfggggChgigjgkglgmgngFCGCIC2C3Cogpgqgsg_C

148 

149 logger.debug("Deploy token found") 2jDkDjCQb6ClDmDnCxc!CnDoDrCed'CpDqDvC/d+CrDsDzC3e/CtDuDDCKf?CvDwDHCrg^C

150 return True 2jDkDjCQb6ClDmDnCxc!CnDoDrCed'CpDqDvC/d+CrDsDzC3e/CtDuDDCKf?CvDwDHCrg^C