From a0c0aefd5c8646b4751c84b91907d58e5672ec81 Mon Sep 17 00:00:00 2001 From: Peter Schaefer Date: Sun, 17 Feb 2019 11:51:00 +0100 Subject: [PATCH] branches get loaded correctly --- git1.tex | 63 +++++++++++++++++++++---------- gitLog2tikz.py | 97 +++++++++++++++++++++++++++++++++--------------- text-output.pdf | Bin 85162 -> 87084 bytes 3 files changed, 111 insertions(+), 49 deletions(-) diff --git a/git1.tex b/git1.tex index 0773603..41b723a 100644 --- a/git1.tex +++ b/git1.tex @@ -28,61 +28,78 @@ \node[right,xshift=10] (label2256509) at (2256509.east) {\verb!2256509: [py] fixed automatic colors!}; \node[commit, black, fill=black] (6e41ab0) at (0.0,6.0) {}; \node[right,xshift=10] (label6e41ab0) at (6e41ab0.east) {\verb!6e41ab0: [py] fixed order!}; -\node[commit, black, fill=black] (53e02cf) at (0.0,6.5) {}; +\node[commit, blue, fill=blue] (16d4f59) at (0.5,6.5) {}; +\node[right,xshift=10] (label16d4f59) at (16d4f59.east) {\verb!16d4f59: [doc] test!}; +\node[commit, black, fill=black] (53e02cf) at (0.0,7.0) {}; \node[right,xshift=10] (label53e02cf) at (53e02cf.east) {\verb!53e02cf: [doc] test!}; -\node[commit, black, fill=black] (8dde7ec) at (0.0,7.0) {}; +\node[commit, black, fill=black] (8dde7ec) at (0.0,7.5) {}; \node[right,xshift=10] (label8dde7ec) at (8dde7ec.east) {\verb!8dde7ec: [doc] neues Hooks!}; -\node[commit, black, fill=black] (8024ece) at (0.0,7.5) {}; +\node[commit, black, fill=black] (8024ece) at (0.0,8.0) {}; \node[right,xshift=10] (label8024ece) at (8024ece.east) {\verb!8024ece: [doc] hook test!}; -\node[commit, black, fill=black] (7ef61eb) at (0.0,8.0) {}; +\node[commit, black, fill=black] (7ef61eb) at (0.0,8.5) {}; \node[right,xshift=10] (label7ef61eb) at (7ef61eb.east) {\verb!7ef61eb: [doc] hooktest 2!}; -\node[commit, black, fill=black] (d477a13) at (0.0,8.5) {}; -\node[right,xshift=10] (labeld477a13) at (d477a13.east) {\verb!d477a13: [doc] neuer Branch!}; \node[commit, blue, fill=blue] (d2bf877) at (0.5,9.0) {}; \node[right,xshift=10] (labeld2bf877) at (d2bf877.east) {\verb!d2bf877: [py] new git order!}; \node[commit, blue, fill=blue] (6b30984) at (0.5,9.5) {}; \node[right,xshift=10] (label6b30984) at (6b30984.east) {\verb!6b30984: [py] 2new git order!}; -\node[commit, blue, fill=blue] (827f503) at (0.5,10.0) {}; +\node[commit, brown, fill=brown] (feccffc) at (1.0,10.0) {}; +\node[right,xshift=10] (labelfeccffc) at (feccffc.east) {\verb!feccffc: Merge branch 'develop'!}; +\node[commit, brown, fill=brown] (1b6432e) at (1.0,10.5) {}; +\node[right,xshift=10] (label1b6432e) at (1b6432e.east) {\verb!1b6432e: merge successful!}; +\node[commit, blue, fill=blue] (827f503) at (0.5,11.0) {}; \node[right,xshift=10] (label827f503) at (827f503.east) {\verb!827f503: [doc] Features/Bugs [py] reversed changed!}; -\node[commit, blue, fill=blue] (0ee95d1) at (0.5,10.5) {}; +\node[commit, blue, fill=blue] (0ee95d1) at (0.5,11.5) {}; \node[right,xshift=10] (label0ee95d1) at (0ee95d1.east) {\verb!0ee95d1: [doc] Hook test!}; -\node[commit, blue, fill=blue] (0009b09) at (0.5,11.0) {}; +\node[commit, blue, fill=blue] (0009b09) at (0.5,12.0) {}; \node[right,xshift=10] (label0009b09) at (0009b09.east) {\verb!0009b09: [doc] Hook2 test!}; -\node[commit, blue, fill=blue] (494a6ba) at (0.5,11.5) {}; +\node[commit, blue, fill=blue] (494a6ba) at (0.5,12.5) {}; \node[right,xshift=10] (label494a6ba) at (494a6ba.east) {\verb!494a6ba: [doc] Hook2 test!}; -\node[commit, blue, fill=blue] (ddec20f) at (0.5,12.0) {}; +\node[commit, blue, fill=blue] (ddec20f) at (0.5,13.0) {}; \node[right,xshift=10] (labelddec20f) at (ddec20f.east) {\verb!ddec20f: [doc] lsting Hooks!}; -\node[commit, blue, fill=blue] (71f4986) at (0.5,12.5) {}; +\node[commit, brown, fill=brown] (65dae54) at (1.0,13.5) {}; +\node[right,xshift=10] (label65dae54) at (65dae54.east) {\verb!65dae54: Merge branch 'develop'!}; +\node[commit, black, fill=black] (d477a13) at (0.0,14.0) {}; +\node[right,xshift=10] (labeld477a13) at (d477a13.east) {\verb!d477a13: [doc] neuer Branch !}; +\node[commit, blue, fill=blue] (71f4986) at (0.5,14.5) {}; \node[right,xshift=10] (label71f4986) at (71f4986.east) {\verb!71f4986: [py] better color function!}; -\node[commit, black, fill=black] (7c94d50) at (0.0,13.0) {}; +\node[commit, black, fill=black] (7c94d50) at (0.0,15.0) {}; \node[right,xshift=10] (label7c94d50) at (7c94d50.east) {\verb!7c94d50: Merge branch 'develop' into feature/python2!}; -\node[commit, black, fill=black] (52b6561) at (0.0,13.5) {}; +\node[commit, black, fill=black] (52b6561) at (0.0,15.5) {}; \node[right,xshift=10] (label52b6561) at (52b6561.east) {\verb!52b6561: minor PyUpdate Fix Front parsing works basic!}; -\node[commit, black, fill=black] (cc9a3ca) at (0.0,14.0) {}; +\node[commit, black, fill=black] (cc9a3ca) at (0.0,16.0) {}; \node[right,xshift=10] (labelcc9a3ca) at (cc9a3ca.east) {\verb!cc9a3ca: parsing for repo works!}; -\node[commit, black, fill=black] (769f9d1) at (0.0,14.5) {}; +\node[commit, black, fill=black] (769f9d1) at (0.0,16.5) {}; \node[right,xshift=10] (label769f9d1) at (769f9d1.east) {\verb!769f9d1: new Hashing, resolve Parents works!}; -\node[commit, black, fill=black] (a53824c) at (0.0,15.0) {}; +\node[commit, black, fill=black] (a53824c) at (0.0,17.0) {}; \node[right,xshift=10] (labela53824c) at (a53824c.east) {\verb!a53824c: fixed some issues!}; +\node[commit, black, fill=black] (0f95945) at (0.0,17.5) {}; +\node[right,xshift=10] (label0f95945) at (0f95945.east) {\verb!0f95945: . fix for messages!}; +\path[black] (a53824c) to[out=90,in=-90] (0f95945); \path[black] (769f9d1) to[out=90,in=-90] (a53824c); \path[black] (cc9a3ca) to[out=90,in=-90] (769f9d1); \path[black] (52b6561) to[out=90,in=-90] (cc9a3ca); \path[black] (7c94d50) to[out=90,in=-90] (52b6561); \path[blue] (71f4986) to[out=90,in=-90] (7c94d50); +\path[black] (d477a13) to[out=90,in=-90] (7c94d50); \path[blue] (ddec20f) to[out=90,in=-90] (71f4986); +\path[blue] (ddec20f) to[out=90,in=-90] (65dae54); \path[blue] (494a6ba) to[out=90,in=-90] (ddec20f); \path[blue] (0009b09) to[out=90,in=-90] (494a6ba); \path[blue] (0ee95d1) to[out=90,in=-90] (0009b09); \path[blue] (827f503) to[out=90,in=-90] (0ee95d1); +\path[brown] (1b6432e) to[out=90,in=-90] (65dae54); +\path[brown] (feccffc) to[out=90,in=-90] (1b6432e); \path[blue] (6b30984) to[out=90,in=-90] (827f503); +\path[blue] (6b30984) to[out=90,in=-90] (feccffc); \path[blue] (d2bf877) to[out=90,in=-90] (6b30984); -\path[black] (d477a13) to[out=90,in=-90] (7c94d50); -\path[black] (7ef61eb) to[out=90,in=-90] (d2bf877); \path[black] (7ef61eb) to[out=90,in=-90] (d477a13); +\path[black] (7ef61eb) to[out=90,in=-90] (d2bf877); \path[black] (8024ece) to[out=90,in=-90] (7ef61eb); \path[black] (8dde7ec) to[out=90,in=-90] (8024ece); \path[black] (53e02cf) to[out=90,in=-90] (8dde7ec); +\path[blue] (16d4f59) to[out=90,in=-90] (feccffc); \path[black] (6e41ab0) to[out=90,in=-90] (53e02cf); +\path[black] (6e41ab0) to[out=90,in=-90] (16d4f59); \path[black] (2256509) to[out=90,in=-90] (6e41ab0); \path[black] (8a5d531) to[out=90,in=-90] (2256509); \path[black] (7ac7de4) to[out=90,in=-90] (8a5d531); @@ -96,5 +113,11 @@ \path[black] (e5c3cd5) to[out=90,in=-90] (9ebee64); \path[black] (d78896f) to[out=90,in=-90] (e5c3cd5); \path[black] (a6f6d74) to[out=90,in=-90] (d78896f); -\node[branch,right,xshift=10] (feature/python2) at (labela53824c.east) {\lstinline{feature/python2}}; +\node[branch,right,xshift=10] (feature/python2) at (label0f95945.east) {\lstinline{feature/python2}}; +\node[branch,right,xshift=10] (master) at (label65dae54.east) {\lstinline{master}}; +\node[branch,right,xshift=10] (origin/HEAD) at (label65dae54.east) {\lstinline{origin/HEAD}}; +\node[branch,right,xshift=10] (origin/develop) at (label71f4986.east) {\lstinline{origin/develop}}; +\node[branch,right,xshift=10] (origin/feature/python) at (label6b30984.east) {\lstinline{origin/feature/python}}; +\node[branch,right,xshift=10] (origin/feature/python2) at (label769f9d1.east) {\lstinline{origin/feature/python2}}; +\node[branch,right,xshift=10] (origin/master) at (label65dae54.east) {\lstinline{origin/master}}; \end{tikzpicture} diff --git a/gitLog2tikz.py b/gitLog2tikz.py index 1606098..99051f1 100644 --- a/gitLog2tikz.py +++ b/gitLog2tikz.py @@ -1,5 +1,7 @@ #!/usr/bin/python +#Author: P. Schaefer + from subprocess import check_output from collections import OrderedDict from re import compile, match @@ -23,11 +25,14 @@ def color(numb): class Hash: hashpat7 = compile(r"[a-f0-9]{7}") hashpat40 = compile(r"[a-f0-9]{40}") + def isHash(hash): + return Hash.hashpat7.match(hash) or Hash.hashpat40.match(hash) + def __init__(self,hash): - if Hash.hashpat7.match(hash) or Hash.hashpat40.match(hash): + if Hash.isHash(hash): self._hash: str = hash else: - raise ValueError('Wrong Hash Format') + raise ValueError('Wrong Hash Format: ' + hash) def hash(self): return self._hash[0:7] @@ -49,23 +54,37 @@ def VerbClean(message): class Branch: def __init__(self, line): - words = line[2:].split(" ") - self._name = words.pop(0) - while words[0] == "": - words.pop(0) - self._hash = Hash(words.pop(0)) - self._commit = " ".join(words) + words = list(filter(lambda x:x!='',line[2:].split(" "))) + name = words[0].split('/') + if name[0] == 'remotes': + self._remote = name[1] + self._name = '/'.join(name[2:]) + else: + self._name = '/'.join(name) + self._remote = None + if Hash.isHash(words[1]): + self._hash = Hash(words[1]) + elif words[1] == '->': + self._hash = None + self._link = words[2] + else: + raise ValueError('Not known Branch syntax: ' + words[1]) def hash(self): return self._hash.hash() + + def name(self): + if self._remote: + return self._remote + '/' + self._name + else: + return self._name - def to_s_long(self): - print("Name : " + self._name) - print("Hash : " + self._hash) - print("Commit: " + VerbClean(self._commit)) + def export_branch2tikz(self): + print("\\node[branch,right,xshift=10] (" + self.name() + ") at (label" + self.hash() + ".east) {\\lstinline{" + self.name() +"}};") + + def __eq__(self,other): + return self.name() == other - def to_s(self): - print(" ".join({self._name, self._hash, self._commit})) class Repo: def __init__(self): @@ -110,31 +129,45 @@ class Repo: def resolve_parents(self): for commit in self._commits.values(): for key_p in commit._parents.keys(): - commit.update_parent(self._commits[key_p]) - def add_branch(self, branch): - if branch.hash() in self._commits: - branch._commit = self._commits[branch.hash()] - self._branches.append(branch) + def add_branchlog(self,log): + #read all branches + branches = [] + for line in log.split("\n"): + if not line == "": + branches.append(Branch(line)) + #use only branches in commitlist + for branch in branches: + if not branch._hash: + branch._hash = branches[branches.index(branch._link)]._hash + del branch._link + if branch.hash() in self._commits: + self._branches.append(branch) + def export_to_tikz(self): print("\\begin{tikzpicture}") print("\\tikzstyle{commit}=[draw,circle,fill=white,inner sep=0pt,minimum size=5pt]") print("\\tikzstyle{every path}=[draw]") print("\\tikzstyle{branch}=[draw,rectangle,rounded corners=3,fill=white,inner sep=2pt,minimum size=5pt]") + + #Draw Commit Info ypos = 0 ystep = .5 for commit in reversed(self._commits.values()): - commit.export_to_tikz(ypos) + commit.export_commit2tikz(ypos) ypos = ypos + ystep + #Draw Paths for commit in self._commits.values(): - for child in commit._children.values(): - print("\\path[" + color(commit._node_pos) +"] (" + commit.hash() + ") to[out=90,in=-90] (" + child.hash() + ");") + commit.export_path2tikz() + + #Draw Branch Info for branch in self._branches: - print("\\node[branch,right,xshift=10] (" + branch._name + ") at (label" + branch.hash() + ".east) {\\lstinline{" + branch._name +"}};") + branch.export_branch2tikz() + print("\\end{tikzpicture}") class Commit: @@ -167,14 +200,22 @@ class Repo: self._message = self._message + "\n" + line[4:] else: self._message = line[4:] + elif line.replace(' ','') == '' or info[0] == 'Merge': + NotImplemented + else: + raise ValueError('Unkown format: ' + line) def update_parent (self, child): self._parents[child.hash()] = child child._children[self.hash()] = self - def export_to_tikz(self, ypos): + def export_commit2tikz(self, ypos): print("\\node[commit, " + color(self._node_pos) + ", fill=" + color(self._node_pos) + "] (" + self.hash() + ") at (" + str(.5 * self._node_pos) + "," + str(ypos) + ") {};") print("\\node[right,xshift=10] (label" + self.hash() + ") at (" + self.hash() + ".east) {\\verb!" + self.hash() + ": " + VerbClean(self._message) + "!};") + + def export_path2tikz(self): + for child in self._children.values(): + print("\\path[" + color(self._node_pos) +"] (" + self.hash() + ") to[out=90,in=-90] (" + child.hash() + ");") def __eq__(self,other): return self.hash() == other.hash() @@ -193,7 +234,7 @@ class Repo: r = Repo() # extract Commits -cmd = "git log --graph --parents" +cmd = "git log --graph --branches --parents" return_output = check_output(cmd, shell=True, encoding='utf-8') #print(return_output.split("\n")) @@ -202,13 +243,11 @@ return_output = check_output(cmd, shell=True, encoding='utf-8') r.add_commitlog(return_output) # extract Branches -cmd = "git branch -v" # | cut -b 3-" +cmd = "git branch -va" # | cut -b 3-" return_output = check_output(cmd, shell=True, encoding='utf-8') #print(return_output.split("\n")) -for line in return_output.split("\n"): - if not line == "": - r.add_branch(Branch(line)) +r.add_branchlog(return_output) r.export_to_tikz() \ No newline at end of file diff --git a/text-output.pdf b/text-output.pdf index 5e113863bc3581f23b7ce274e42b723289c674c9..d686f0fca7ef84c8dcd69551b1dcb0df26f42ea7 100644 GIT binary patch delta 27908 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 Db|^8C delta 25981 zcmZ6yV{qV2uss~xHa6JUwr!gm+s-deHnujlt&MHl+}L*Vf9`$nr*}Th)Ktw(_vz_# zYPzPX46-5vvMvY$f}M?-J*g*|3TV!jO~U7P4!C~9_}7@%xCA0F-A7yvrxc zLaTZ5y&d$GNCrlFc8FsKzU+R+biH1;Chj1-4@?}n6r-}8Vp?=rIAUujE#7JfY$E6G zz`B`t%oczBc*4Np^bwW?yCu7l`m*|3p4;h6x>ce|f&VN&fn10oU&^ zM9TMlzI&Ls^?!C1yoeLN19}E-iM4H*__p7kiFX{^6kGNk4+=c|DG;txjw+`P{`A!L zHWO^v8dP6QUukj9cU+~R1)4dyJtq9R{HZ^#iEbDHEZ`+cO+_GS0f29*Df^eS0YdL^aP!)Pt^ypRCXlHb37I~DGuP-z_&R9iD{M) zg6>NAQym*n)4E}d&+z@`{4Uw{b~Ewy_3GQIZL6TH{h=dNjMjxEr$mzyLL#&wQasOp zKo{+EnyHcj{L(MX=VccySL-~6BdaNZp@XRfPx&iUHrXIC5|S@PaeD)nVpFfTUxPGP+=#N0F{i67|r%pl64G#}@2}$Hl z|Iy_6H$Vx|v>~lT1Y;leMe>(O^Yvdr-i1b(1wVqZsD+e3ZUtk8{2UK)>o+D`>8)cQX5d2a zs--+&3-ecK_djDLZGIMLZ+3tjX^qi=G*Y!8$vKL>6ziG16ul6n)oY}~uWoPKV>+~L zqA-|Zdv_QL+6jc8hvP(aZ)X2&-kiiJU)zDq8VPhb5&opKJ=U-#Qgw=P98R*C~&~_8hXFXWVV3YKzr$l*kw& z6A;tLnTdU=*N{qD?r+P#lqq`ejVVk3l$URQfkY|1G)RRlrvYtoW z^42y;sp{`HhTz=_an!#G9O^bX`Xid{KiQYkH`5d&AuW!qC-~f-c`RrDo^s^wF=;^TRtns+33-{t7htQU75HtSH&^D?{ypt z#KQf}fz$(mAwu>2xCQvre23b?ER1RhDzfGK+_D`S$}4zP0U8Ks zf~5$cI{ik~MT_;Y#b}T`@Vfj-Pj_fwPH+2oV9V%HSf~wQw1H4*Z5;4{8YtVi<`w}8 z%@TQAIu4|{Rw79AuL_TyKP#r|bvkwWE0%YI)!8f8pHOI-`)R}k<~snK!c>(Z>s0sZ zf*N+M`U*^Q|Ja5KiV}aPp@L+pO6}FNjHWcLVg*AJx2n>#IvqB>v5H}eiQ+O7h~uLp zB9-d81Yyg<3qLlYAyfO%bBq8e^``zQ}ztTEB*J52;H{hHA9F{ z5(%zIKXB~!{=mesq|pHGjZHR~ZqERPx%>0q;d@y2k4=d)(f=Gj!*a1+|cIqtdQoH<`4~N(Z3o6 zS610qF*mWZXO2DzGRzhX>P_ZWD>P?1!I;$wLfzpD`C^0!K$%1dRHAJ1|KZ%EQpz~T zv#g7OiGip&e-=Q~?V71cJvXtIN1}$Oz2t0U!dluH=MThB6Par+B4cl%LBOZB;A z`#Dxx`2_Zm?;!Sx;AyB@M_CjzD z&__ZY6*edMn5a>1> zhQde0a#uQH>OB#4%Lma)n(|2`6szrJ7VB4**&u3c7;=qdqebr0?1H*X7sXJj{=Nzr z>(`hm>S}@y7M|YT!UJhabA=8mm+X(4t$fBGA|5 z2F}s8FPk_ylgT;Rz*d1l+2Yin6Y8M2IZl!Aj%r2B;l%y>rvhp7f5Fp7!)9*jx>2r_ zo~MmXUxH@F4v){Cw2W5q-_w14BAKYQZc4bc};++E{(t zvL)O?TZVvo9R!{K#_=4G^EomTFOakxRjf)|DRvAQixbsgd1r{ zjbTFR==(EeG5&uDqCunlhaioepnaa61nr>V0m6fsj%jsWdu5fr3pXM3;Ay3YvH24~ zP&;%&UOUw2&}u~4bj2NQUZcZ=j#5D7KoT__r6LmN5j>%4m0un)8iZS(#-W34rkxm_ z2+5jH@yl)&Cz29piUPmXt8s|D;M}ap#EFF3hLB&Ip)#lUal-6ir0qR&!c6SIZNluN zRl{V@J7ZXDdLrYoL5((#(f&HCc`5|xU%1&A!x}#I3PsPhSe}mX*@*{&Yw3ro7sTO| zX&U}p5+Q5`XmaKrhJX5Sj!(PD3+LzA`b?{lU3FagDqhd~J z&eJUFrXo#_-VPNdM7#PpQ>==;1(pNBz`<*S(!ZT=z`5X@;AW`W0UGFp*eB5J1~U-x z9OhSz1&MR8X5C~^4Vd`>=Ua}gO!+^%lK0AbF3WgRYZRXf)j()7+Zij1{AOGl-?C7T zN&7jfdR;3i;Cp5RCG;QCqq0z^oo=!T;cXM}g5kbZnDG{qJE?~^cwSDB_e1|M?gwif zMmqz9hPbs^8EqN!fsOphs9SSO90RfBR~5!Ny<{`#Cg}`pI5cx(*n2MJ!|Hsf!Xgs^ zO#7;_@ z#O~=Py@vxs9k3(3lpXSs(xNan*qeeu^R|Gc5Ll6+vJlq>;xCkUi-Qr?9JK>RG8m$e zOIIff;9gajcYNoTy}jW0-M%pw4@R0kGZ(RAG*yseZCX7mpbHhad6&>_Ld$b5>rib? z_`miXJApS>tH1YRTijPs7CZ4ih_?}oA0a-`ot~JpHVeGM76gqU&bc-e1&sxCQcqOR zIzr|b?0W{lKtQb;=GHIeA-{4hdjT7pF22K@_HVeWkvP94m{QBmL?1^!s1f+K@a=qT zTl>hLOK>*I9|~R;nbbKOd!BNQ?*~{t9|9LpJK_8*Fr$QW96|d>LB-ToddS+jN3K>f zB4vkJLDvGgzl{4lt_OU;{wig=C4}f#7TZ+MxlvmIbS3R=&onlyP%iq|h(~DJX*Bn{5V`Dl+}ph$}%WXDc;t|OlwGIP6IpkKVI@iydOM#7daN& z=v*C(GFLWt4}tq1XgP#~*s!*5yXoX(v*=nj&1i`KTRKCKRTIH4ljY zD3@4i6VGn`ADkEKE+g=SS9WR!MX2Vsj08nUdSVdS#{|9j?#3jmRjq!uQ==v;2X`+uqROBW^0MEEsfs zSI(6wLnis^|5HJ(s{gSg|FSNahlb;2AX7za6fzr#%==p7mPv8K#nf=^A?0BbW|ar* z-RDhb;YUs|$3~6-9OZlKzos8BrWuYcCK|%zl{h(~luH>2joFrU?=rdO90{9G5-nt(d+?$d zYo{&&`DPJc_YVR|1c=PCW3o%HwTBgj(s0u-1+)D9)Tp5# zbgYz}8y)zro@1TZe0EvSp(d36{oLveKWrzo4}|86s9J-}#aI~4B;j35$tuh3pC zI|mGv`?k(k5GBH+FX>pyDalbFTUl*7aO6L^ssv90S|@t!@bK;0)`ljqeNi*xV&A&`w=9k7jt|+Ysa$8^X09WpUoBf+s171#=yu?;yGWsZC+dUHqbJ1t z@MXC#O9lQm+KhoVlt}Qb4kSnpD3#;3)RCC#h;>-AaWGT1B*_oIp(5m`_i@d&JS~AN{eB>g>%tp%`YNJDunGM{_32{Y( zRE_Lu;dhA;OCP%YYT|c^rr;|P*bA|R0dQ^so?}m+4VV1IBH2xBXibDlQ%dS>bX4#HpR6@QK^C5)tWAx#;3XVCBwj$l? zl!-$B7`901t@WVnUPpp?ce3%~vrycR;I2d?L;dNd0Sm#4#H`Gvjh5&IgDTHsjuvKb zZmv#q@{7x#o0=*lLilYJaAyyW7N<^%RX4i{IZ~H_nJuo@rg#9xEr~5+^P&QGnTSde zL3?p@rbNt`43JpG@*RR|lr1qkdJLj#3x-`9V>s*$D5lH2a~;qmoUh0VYb*{bS8lUB z4~sH!Af+NRzJ^#IyIMV0S;|J9C+ofTR?h2s#^<4vP4o~zevyU)BpR{leRT^5RCz!1}PZlK~j5WiANR+1R&^p zGK>B?4O5~>DCq#o2G{0He)7jYX%9Ec?whq2$N$ZtQ{SKDfyhrMp}r4I@@x~;-eser zbnU)?D+iPyY`pRSE)6`@(Kfxi7S@ZS4vP;n2D*gr(UsCW;SbRiw1^tRuyS3?3{z+JO$NuUR3Q(V~0$+n; z_x>mI!c{N4KM(#ctsXkT!16$GOKj4=0tdu5_+tf+6I-{6O5aFP{X53L1$*v{pIsv~ zkVbs?f|$NQCO&ojSwn2H{O}552d=8?ID58`!}U@4wnldJ`f`EOpFMau1&-h?`fk01 zvfJ68c;Cc0djg1!$|TgF5G(%m8mcs5AIyZ(d5`JSgv{YDazdZ-#1mnF4~OXjuE9>lR8|@zHAom z4$j?D7o(;6sC!sU=JyNX*QDXMno+BQm0f8YE)yy~+eh0A6P^l^zC~%&<@p&RU>iV7 zqy7U6JOp0hGeSz7H3bqJ54{@qjmu;#{x*^zWA2Z%%0qXo1ZUdRQ1k}?T;5(`;35<3Yu z2@{D538Mrv7YS$M7ug;e3I_)qqnw$&g{vhC2{R`bN7A(8JssibGq z3K_Y7b;Wk|KTW|jaCmDAR-q0A7G)C_Z!@@~12S#bea+|lct+s3tHP(UQlpmH&(~$z zK{=t^n(4PTPbPRVp|HK2?PS#l2rPvghXx2OEi@}FEiV{mN=fw}{u@CP2pYS*sLE=x zh;KtEGzKBoR*#ILjE#Avyyrm+ERRa^V@Yh-pVl$gZo$k+x} z$pmVYHz=S6Mhz`iVVj|4nZy3t>gyO&$VM32=-}YM_+x{RlOsEb6WmaBdE+1l5yoXXIs>ZCukjg{4(h8Wsk zaQFV>DkQS7lF-m3qf?lBwQuBh`TTB(jw~Qd;f2^_GFQ z*;|3miQmj#*rXo`+TdFtdR0|be7*!Ad8{BOX2t_|nx682!_VCvnUGKoTU!uWU3ks_?%8#$kei=x9XOVc$o>x9 zQPtSJ0grx9s~}at=hwUWgMdM5EQ!yx;1TegCN8e8si~2&M?Cz!^gD{z8`L+0OB+<~ zLaz#>r6&xCKK>l~2Evuu8$T6szwc7OwYkAwzRI6I)4xhh;=U0;E`iiwq?;a7YTj-| zdK95|i%~@FzgqO$#J1nLlAjJ~-vIiTX7YC{>30vLbjQZVcXi39?)P^ghf7`a^H*Ho z`)qqh7h^!;!8=~SS8X}cO>VI|n9h1T?}uS^)*oQ){YOM#)#bNObW6>Ai-C}=x-KXD zAE4xr`0uizuDJs|SOrh}`j=ZZNcy(!J>Ys>X?DB!dFJRxJl3P$`#kl!LtQL{6`KlF zP~XdnWG%y30c8 zEqI%i>RZ_N8vWC7@I6QI5!pMg{1&>)W%hq&EWfdDyDXUA|LdlI3t!{XeMPlxyJ5vX zUB|o-j~RX%)qjAm?U-t>gXssmb`(%Qd-?g? zarw@9Zg}=Qp8Zv}wW`0iglylRpD#lVSus3nEssO z$71mKX+~R!dhcWXzO)G!F=MtMcdO$R*0*C`4mas?d^2jinH~Y`oiHG zZc7~|;h=md?sG@_K60+16CL?3)3B}Scid3lKHf%gZqX5FW6oV|1nIa5wbF0I$9!T0MoqaX|VViM<{jtip- ztv%D63I3=*Y!o@Xsqur;moUF<_YqE5TA3pl2=fTA@D3Uz@vd2$wA=C=MvGs_KsVe; zX)6U7T^V1f=5RH;cg%tSvx89Qkt4ddpst@`$|t&1t#`m5FN@(Janf$Y@MJ3m2s_~x zH4oRmH%UD9Kpvw5TT9%DA#)0(#$V-}(*riO2{9vG_x3GEj!xiu@ z2H&;osj~oPgC?Yr*X~E&dsEa3>_hyc1epQ_XO?jMSJ7^mf<7#%W6~;f81&SSv>#~E z54tQm$#iE!wXkSIzq_sAOlsfrofYB3l7m}Pg;E-Oz@&}uOxvX2?^1-altk~p;6rC9 zwXXXgR*}|b$_Zr*-(?0Ivizn%Kx^9Mq~6J`8$yBXysC3V()G4<&C2v6H+seTFtdX7 zi#5>Q;jvk&WG=`HWF!r`y<2o`A!BO!>2?!T@Z}BPaf=SST)jET`M4<&^_noZb1lxG zy+e^Oeed05{KOy1I+8a@?=zcLUJC{+kk)y9&iz$5ANm{C6|ajkzu;A2A}@^EnxS$V zX93_E19CoLNIUdAtXG?$V5C3r5@veN2yw|zu19S|?J%B(1m1MNR=iYr$2S{8G(oc3 zJj~#%GAW)II?00;yzuJrFi`qmjd&i+a?VBe1y9bOv}`iDzp-Z2gu)31bx-7JM>3x$ zUgfCbr<$Kw7iE-O{!BT65nN_?H~LIzAu&MnA~M6heBEW*fS2gPfXVb*-PDk`|Ek1c zElJz(aAu}$g0Zh^f=$kYDS=qhoUdhYQ>={vqq?v{3-`VaY3pwv?K(5HU!Yf$spbGS zq(_S(fugn!n$c{FHWy-peTthZ>sRZxC;5FXC>FU|82Ed{JFb(N1cvWa0r|s_nZUOY3F(tTzW8tDyx%8gn#S34(`Eaqs>MZ3 zz}utN++=c4ht+JT2Om5Eery*pc>pk=iKCxqUfQ6*UiMRi^}xNh zhvM{PT-IU9jCCQS#MQMhL$3G1IRWDu%ISMWe59#x__NEt{lrZ_&rEfqPLbI)qBZte_pfh;)Z-N7x%rFhVjdf5X%Il4(wCXTGot$L)Rsw`~#<6hCcv@>}Gsh zyyfNfh$_qSKl?5)$z161h48VCK9Y*=@#%77+nMS|dUvvshHXTll(DFYtSLpc=K(OM za8@fEy)Ow4jJ6?H*|vF7hpUeGnnO2`dNyZioSYvKvIpZy?a8N}B_(f-(KCLqJE%Fc zDDrm{dv%cN;NF$x3Y z;(-co%=7u5mT!^^Ri>-mLCG-~Se1Xa_1=lqDpW2YKgicjT=DiJ>E46PxGeP2&Cqg( zy6ra)*WuM(zb-_IiY@gQL!qPx$dd+!g8abX4<6MGUF9UMuNDT2x7dNXzX43xK8R{J zE@~odeOb9;&lpWy&pQ(WSL>qQ69q!a#SM=Zo&N+FqWckSUc!>r6WD@(B=BZQq_ z)v1OtRpoE)2dJ6f0U!j%a_-*xlrV0vP10Vr3Qi+`h0y@Aewx)h&M(FH0 zyP%BPmt}g%z3$q?82?%P7h{ZglGd0on|6sbY^nyRnc%Q_z(oQmH~O^rp~y9A2ff^j z%UD`;mc&t+!otI4D#jYGomLa8(-XP^ifG>R_^9^TKYvj*QOhuNy_S*q)oL4kJy4g6 z@^ba%EN{10@OrHIwzK%hRK3>OGWcDU?k!IQ`@|S+djXfXPc#q z2|lG$yb4wE@H0l#0O{N}wWwe1-(ZmM82AHFo+JqE5?%oJs7dsh69*uYH|E_eqtDiB z1}>)PF12(M;?8J)j5u~bD(Xk=uQJAsKpko6`Bb6McGpm(W0$K*pOP#R6Cf^9;hAo@ zaIw6-_e@XhCP;8Oqs#=OB*tYHTKi~=|P(>RY`m=aUS@jRyEV|t- zxHhzZ0G$99R+|yR1Fn5~frz7R<@V@v5P`|(KfE9T!H~H80m@5uCk~(VdeAz5H>pU6 zhxw;&D?N$aaSG0Y8`$27m!p49OEFop1PRGr9jk`@7eA)4<$ohuFDI2H8~I$g&^BTe zx6$rF{`trw;Kr|10?!d7yJoj!!Z8{-Rxa z1$XmHIOesH*p(8qA~Yh*H&>=B)+ry6HH0KvwLR4`a{LhtdoQb7QW-9eB2Wh&>=g6E zp;S^SzDRQScP)EV4|R8W=i)pLqaaF|x5~+d1)Q{(y>>Mf=y`CRv;X4C+5Nx_t%nmI zXQl*}wc$(6j~@o9nxBO?OS8;YxJRn)_27xQl=oPH_jbt|m8@`XmXZZo#u($KVHMjm zeXLRqcw+V}>$22kQ7U=E7VFC2F1UbY6+&Ax+iS%yJRO{T;bQID&5GXpdc0U+ewVMo z-eRhEFRAMi;(N6j+>;%H4yh0|44>9A>~i4k1>aZ?Pfzx2V(igob0}KGa)qG6mOx&= zkg2UZ^MtEnbG`(BX=SVRA&VgxjVDLoEcV#W$KChO9q9S}K0{ZC|IC`5fX55aj;3W-$awYM;p)s@qZF-%#``lclqo zD0iwv1H<(!q~B7ac|`2a26ohbmml!`MRXc+gC_Ro1uZV)mtH=&$eRp#PV+GuE*;n=|4a^BXHHpbm~yX~Cy|)> zVQ^RB%SUY_hUff)9x}^v_&^EH=^{!|bIeGiN;x8Ha2ZOak2>Qt$=Z#tZ4W@Em3<5q zh>4r%MaRZ3=Zti_qbIvE^Zu;c5cZGt5Q^#9_Vgg56iaXX+1E^=|AOz%Zl7@_riL!w zf_bOf3P|%du4FD~gT+^~yN@j%ZF}N`zE7%9y~A}fRhH!E@zk7K6o0C!lo3rtn@2P@w%n+EJIIKNTdDB2_t_NCz+=#%VGG;Y?uS?-*-3^*(;&iX| zs0khQ*k^jX(@9s0Vz8;T@Ya@Wh`^F{++KpXEy~x_H4q9oTE==w$DOFSqK4>SCB~ZH zy+btNZGwky=HGQ5P?jJ}6-6M(#7&_Da%hh*bHEzb56jpiyhO9!C<7$h$wlUOO=7}) z&YwZ}tIu6NDNQ`(xWZhIv)!sw)YL(FAF{g$`kI5!o8iL+w5gt;T8O@Q zuR6SQWOTK6Z%WiU8X2g8w;C6i>=qFr^L>lRnQZjfxpNQ#@RU60L0BGJ!CM!Y6ssz( z?;v`n5V$bY((r!M3xIgvkB<5z0b4XY1bs0>^)+vBsel0#ybIF^g2TI0nF%sutEZ+k z)|g~R^6FmWW_~Q_pJoh@M2^|mM$yFj*W>%`+R?V&hb8_Ka_pr(ovDBYup@kZjfO)< z-;1#}3b2%D&E#l;qqR#z->wO0uUL8i$Wg{g3b(?mx2$)T4_OXX!} z8kq{RC-74mhq;xr$x2IQnc)t8J(jiw-aTT)nx|jDCGO_#pRb!+-(Yxjh1t6R=-Goc zTwm~ERVJ;`4j^y;Ef5>?aB+}36wLdNrTFwD z1)5Dmrbe}{v8bI#hw*EsHAa5Q+b`yJI6}A)Ud`P!82HsdcwA4@;NUo53R^^pykiQ9 zM0P%03zpP!_=g`(=`1KlgBpb@&1gbN(~{g)Ea)!_rc7Jk))t|Na<^HgM#jcojuLM+h=QB4+iuM+tv4BikAJK zfEs6NoA%(!)XUr@e2Dz?iB5}*Qu0_*QC$x@!a%or274|d#jUBdU|Yh;-}&Ivf?L<9 z=>BRDO>VjT<6S5G#hR?B`@dSS;VD|9VMOiKKH^F<>-N`6apm_(RtWsqO@@PsoUI?k z2Wj-uMoUp7D^Tf znJHIl5B}+~dPIwnu-AN>pzX#6^SdC{l z>YSAK9KKugIU8HNC;%z+gy9~}^X7w^a&0$NJG);YQVg;`L1#r1DFVy&+n^P1WYR+b zIubI2jps^hnSH)K0}aaFk9l_Tjai?C5^7*`wS*t2x~Z0)e!LY6tkheP;nep}L3frG zDab{tE{YoFlFVSrg@TqKQmF9*C8vhd%RJ%w6Jk32{w;_&_yUp(KTT(P%3^F&sQ&1N zvQ{;DRE7JwlZVF{zLh}kT(P>@`TgQIZ}}5{vQ3gLm_of8RsMd`wXCPX40|iJgT(yH z?|qoMV8VVeX;k~iAND5-pFNt1HlKNI)Dx|=d+GBB9+1--DsHbt$(Im&An%4p6)X7# zx1hO5B|7{gt@c+)I|+QpMwH6;?ltsE*M43pvafS{Pf~Sv>XDqVeUE%6AF~ky=DAF^ zudF1#iNN}g^UMp1(lo=lUEx!mWwP=xGM*5DR$XDrk{kmx-egG=s-3tqTdUv!tzndQ zX-$UJ!hcU?3na6PqH!f!KwqWGq~`&_x4Sz@A|i*di;wflI|@~dO*wrb*UYG6z(J%w z>Ag;y)#SY1+2$-fyDz*w`bwP6?MUnP~2h9{I3UxCh!dk$r0mN6rjNULZv2o3@j{BQ#&f2%){~m-;SW{cU!K zE?lj zwDsg=;8Ca??{@_bkf)hKXZ8vA6*Yn26|%U&B9_=$MH^Q)=(KL8TwJVPOV2Z)%73ZO ziJ!V`f**2R<(wzSC!?#n=@|MGDg z2^X>Udx|QaleZ^`Mo2;xU&@p`NEKxxpF-f(>caFtB3|b33c|t4p*<>0GkqM%uwo;B z)*lSxJ)YHh!fhjP-$|LS4nbGUPoTx5yhSaNI#0ag1sk7hLSB_2?mzD2@+)rXbGZ{ z%sTUqq16P_bL|P;ZB@b7OrRNRnOD{IRn==>3h#&j{%E)&|J@r+#65JY_4D7qxnXj1 z8khR<5HwaGo7>%9f9Hv$YKqa}*q3wI>?x*fXbiEpz5KWm?Ktl{m=H*Mo_;=D)Frn5 zvNqgc=U`kq4G-4NuP!Ww81(8_+a#Vh9vLjY2*Ed{PWr3%boPn?izTjf(EbZ1LVH{q zC9^>cfP5!oS_AF<>xTfW8|KG$5B{TaM4OF+q-EM;tUAT8x+ouxRsWqbHXHJ^_fRdc zzpSVbCzIXCs4!k}=X#)#ly!D_hQPWcjch7KO+k-ihWK03;aJ%u09U_36}F=J!U6h1 zbREYb;o<|2zZ~|1N2;Fh#76t#A2+51g8928;3IYhGjg2BQgR4?_j)>0ZR|>4WZmEr ziB7Op25YIg;HpBaqQUusE6-+uL#7&_14>lH|+iXt|3g)`wbO>jk;m0&sWC*J!VRcRU+LOsdtep zLS#>;Y;fWRdCgJ#$SD3|F|zeRft%@>85aGT8Gsn;>(da1M%+y<&%jGzm z{c>*62)>7et~``~$6)1u^hqfORbT@`{^+qoj^mf9J#LKsBptHRF{64^UGJO#<`lfb$`EJTHUXk?nPyJl5{?2#OTHLQ!LG8X6X%w3kCDnB6*r=$!6 z13q9zEQrvTM=cHXC)#tX@Ja4>w)9xr*7-*kKCCIEn)Nt4am{4Bd;4EZj2JB zIeBVe+}m%(B-XW(13B43+9fyv!NFSq5Fm(VutRQA5|4CZZy%;c+Or_rCPP`8BKT^7 z4!uz`ZgSg3jjW+NRigar|82z>sr!usWDGG1*AJgoE>PwF+l_!xG94(rlpJrBwpTD<0-lE?w%p^K5hb!{ynb3q(wGi*o@#3hB0rP>R1Wf`Fro%VnH#tRtN{FRxy8Ok? zQ@Jh3UO}}}NPS3-_Jol0YBszc;{J>EML)wRUICUfVLycFx0wJS_miwxbnAquq)xRe z^U^Ze<*$827`^8D??VB{JL6WpKi1Rk@a^Ef}WP-otU8eSNBa;1Igzk4H9=Y#7}Msznwnc`MV}Q>?OBM00-<7jVVJ#rAO8|SdJbzjgzzovagFQui;Yt7 z8+lsW2}>8O)Lp_GbPn-5T79$^K}(y-R;o7{sxFZ{iFG-bNI|v*5`yPe+PaZO+9@NW zTzQ|C1!mWM-5&%s*hSvlL=%xf2Mm!!Y^hQnWTicg}I-Fo9}xf~caV7~@Rk z2XHZeL*%poZk4A6wf7dm9y{nEly>D!{@&Junn~&$R!VnJmUt2PH`{|MnXtZI$a)1o z*@t`XYSUu1b3L#hBHfs}C0;E9BB+#bda*HL2G;3Wfw9nF=)s~!Iu9#)DSv1SgA*--b0?5XHYriEnX!l{j*q( z*0tGhsg!pH^yhH5$oeEm>-bL|?jXqm{nZu-#W*7uc6$h@Aa&)BlD%ok#nB%aa1yWe zEdqjK7&dS0o))vi3T`nXuR@N??z*I8t>tA!ml0_#eE~~JuPgYPlp<{KX?A3M;X)mf zd}9KD8K}C3a)=)t&U}amlPeO_mg1#rNajZC(es}^HV3`B_6o9;)|ykbt8IwEcnRHs zoCiEUNi0JVz=t!x_X(M+p!8yE9k$+@WU-L z^*3}jC>EM4MMdyISP0t4DF*E(mnYl9M7$tyOq&-Z=>wK}xz`_s@N+!w$Bs}R>9#|$ zoY29+8WosJw}VxPy6c^sh%u};3;4#OXQZ)JKoMW_Ot3uRL~>N3<=-0({rH_mdF?yHIEIqQavn zC^Oz7qG+N*%_*)3i}=Soh3?f_7Bo$W&O^ssG$Jq23Kpbe=*4vTrVRD+rbn%AR&b?8 zAp`r1l#}_Eckdblp9EodrwN|Ex#a~wc)7l{saG=KDn0p&xo$cZPTtq?9)di4f@$Bh zs$5amF}GFjp+hwq>mG2v)*qp0?GUWgjv^;*G@h!)rW)Y*><$(p(}}wvDt^UUYcF+G zR}}He(}2`gpVZt8tK+f|C-&DmenW(}x8rQAU-C#Qh}BdQu6ls=p^y7fdX0Wx}J1Ud|}p^D68MbU%O{%{@{!_a9 zE8XWMP5cGXQIQ&bFB+I=DOG`~#JK5Oz&iNTj;QZ)tMi>->vCW`GuJKdq3VO{S)`kd z=kP;@`(PM7l+)->+Sn)JexMwH@tAC%VJIB8>ojLo3{m|y@p{?cuHW|OkY?*brW;jtJ;6n^b4{N~tR3l`>Ok)se|#g*O}I5%usP2Y zsH2s}7x+wazPnI9y%ZjEsoyY{09R%ZB%MxG^J;6w9zAsVvfNI^{F}p``nZo&el*uw z!5{4D@^r7H2L$(=I)$#@_utUXS3ArME)2GA!n&0+ae^l{Ws0`(Le3%oD5>7jAf$g@ zK(Q;A#X`oh`BJ4)!8^QnY)p~9H) z4ioQv5z+u(WL?{4r)?N+#KSL**cJ1+S{8=N9wgNB+x+k(tto1<7N=au;sb@9jIG@- zTvPJm3FqK#(Q|Dnrr80c4j1!~Al)@}I@6)`fkrMptg1O=Na6>8{C6;XXo`*cM z5|4qSZtzQH^!In_3~H0%zdAdzynd8<`@j+<(77_W4`Xggm5tk3 zt9yN->+2Mi?4Cl{>k;Q=?1hE)W<58P4et?bwgvavQ(sQf?7g}6PYv&8 zkfYwb!c~USABm;T`2`=|3eR>-JW@kcy63%)jZpgbQ}0D%;1!}wP0e$nbxnEMS=(5f zAK6wumj{Q3-j|kH5{5+!YgVA}?w%E^Ypyj_KZdkhGyFpV*AbT^^%jxCSwu1{Oab)= z-9ssYXAXTsKCvWw^wUZhXs~&0f-+bSKkDWI#N{VMff1p{5^i)A&Y?dxQG;vY8Fy@y z$Awj^5UZ;Wg&&)_Kjh0|{`*&w@4xAdmUS~<@7!7HJH+a7`O6BCf4Z07m4qXp1UHX( z1b0jziDyp_sBY;eaZ&t7aL6Ya2G97-LnU(I7RL}6l$ZB(O5c~R)x>7|E!4vvYhVTY z&r0@@dk@?ANE3bmHuFKBq2BRyKXhissMD)TL2)gQPg6uo6lT9YN}Y{$CW@A!3Sp(d zAj7@!c+<5-dAka!<2rsl{3FE%Cv1t!@eJ0!pvSZapm1n&BBOG*5%uGML?ehSTUj*` z54pn;RSW%1Ch#0Z0Og`lWqJ;iyj!M8v?&e>!H-13Iv@kW&M#4&sUa|9hZp2&Nsp(U z!PwIK4*|?0ACYNiyek3)%vrb)QWJ%Y(E1fqHlxast=BN}m|Eo5wWM5*pY!rCEBxF) z_~#OQ09BJeTbs-iY~o{>!L6~&r@VmIKGT#>#LyB|O>qxdG$rc@lfn4qHUIoeBVA3$ zXQ#ydUY10xummQKt`FShZ$TB4E{tTME2B2FL6-1O@ldh%nGa3eAP3)a-whr;OQq@k zw-?llTN^uXuja*JA7>W`hv0wf-0`M@@RWqa!1JoBjHx8OYEM+@b*R(;7Xr2bkM;dR zqy6Qjzwbx7ZVgt#l|41JxXz3k!Gz;7)p#x+%Fr#z2F^b!3`E2RA7jjqL>NNaCfuLy zs#b3hzFX3BkL(y^mHdM(gXs{O@R70M*9Bt)+Y_gVmM;-!3qs=Zzlq@K*MxrIFe%Xo z0XYnwrwIwoI}V~2I2<&5e5j|MiW+PC5FRjY#2hisQchaGgm|;?$P@l#hPGhw(Dc!1 zD?ZNUUd23}m(HS%kN<)uKdqB$am%@-|5pj_vmR3K^nNB%%ff4gv>J1Q+7N>L_R0r; zvc@&K@l@{EeuXbmanl{vOq!qldrXG=3#b!lEtg;`vwFLa4*@USNfEQvSB3YM*!RLP zbkH%P!1c#uL~3GmTekU$l!uM^>mguLzn^&s1I(D+G zjF*+hn$IIxs#PHc@9KE+J>vdWbuV_M+FvmoUWoCTiDbdyOt`7I)hUIjTYGkXq<~jL ziJa479-c#pCHl_%yTtIqh@v8%ow~E)hil)U(W4dSH)rs|kqphHnX@_d`~q@D?Tz5k z@=G!**{s0-E95JK>gt*k2w`s%__b$t-$}pC>B-R85l_vw>#&)<$~j1|NcsS zBf=QJ-eN)1?-Cm@9}4dn?ABas&c*y)Ec;-(wScvu_b`Nd-;tx6rQc4evf55EOH(udrTd!2bKT?O>s2iQNkhHq0W9C7k<-l za%U>I3gE#=3#G%pw5WIvI$3OZ{2r3wmR3E_eaoMHSX@`>ic(d9E!)>#1qIfof0{el zR&+4Xn}nme%ujk7y7b%Dm0VOKceRri7zZd9T=bi~$G5m*-%WgqLeWl{S~&P&9@#Q* z^p&PbW@8A*C`O&Ad0kPZ+~mH66V3iQH5>IlttGj{BURlq(+D!qzi^lF72WMeAh%`m z=Y6$_q0ym^XBluJK3TWMX+E7frlo<;|^hBpiE>6Xh#uLL_M zVhIokh}{C3bmy=Hg(P`e;0AP?T3NR)#ecs2`3C<0K*Ks{s}Mimp(`tTUFYV(Yp};g zr{|+K^nVE(L)YW-IuWVyg3X_2MXZZ52w>5)QV$l*kzsT;#YZV#Sv%`*=rwGzje&I9O z=6YBiBz@KBIae~GzKTPboxBa(*P>@?@N98J+HIui&hA} zTRAFOclwJ$?{N*UL~6G zXn>Y)`Oe?XAfL_J2oxq^I^g6!z|CuSRzB7Nz=2ym#zI)W`Y#svo&zcA67 z)NV(mqxyzuncUAv8U&uPFt4h;MkJqva+1gX1jJdC1(q+iej?nKo7U~QF zQjX#S2^tgSR2PG2V%>D4E}~a@t?xS*uabn?ponTP^;%l^mYdMuqcyZcKsmIOKiN^Uoib`H<-@>B^lJNXi1qyZsu6TNeG42@tOzH>GH^6%H# z*sY?O#JNo^b$oC)_td1jolK{e03TA+mLf>t@#$U^&xpj!0Lu^h;-}g{T`H3Q+lk4= zypg?J;Diaw{!)(oemeg{hnz~%S@V@6X~uL(U1BoowI_TNF(KftpUx7OOlFED~@*>~3950Cy!0l}GG=E5S`V>4v>-fq^L zpNHO-W4v3ItKJk-Sbx&Z0vulFP#+WmiMH9&JoC&LL*?ddsoF>0=dx`OP;yFl^3gb1 zU2ox z_7u&%$anR&b+6hgZLzV|0Z&DuXT~qcC`l|Y-!HkwHRJMpj`U9U?D?bE_BVsk8>$;V{?5~bUR?}=`cNzNOPEktcc z_}Yb#Se?pV&B;F@qg0%Xo<#@TOLr3MHW2nnh#{p~6vXv(eYE)W7Qox8u;F>YQ=1t+ zfWp%4SxD4^ML$8Y3v4}f``o-drRjcL{c|rf=bjSUr_*1Hqd8y2j}{_wbFrbi&d8Dy zYVP{sBUe!eps3#N%=0tZIK#JDSqn4rf@uk{gC^a&aJS|~dU~6MOuqii)TIHB=Ll0- zc{oREU*?F)%I8x!M10pNFIPchO;5$77FHohZ1U9_Yu@)-&|4E2a=(~3rVy4NA=I}$ z==_$odv~E!upB%+WD=fCF@x&WAC!wrwZ>AVHmZgKNFKQmVU#eXy6j1He@estsqL8v ze`Y>{dVHLKOatXKQQMa{)%s%khlCd73wLV3!K=F`aE06Srk~CTum5M&Kc@* zXzAJkq|Apza0r(u)CFeMiI;CPg1S zF6bJIVE|NYoUip}~$d|BD!(&VnQE%Qn2 z<*p=e)ylQeoaBZTofTVRmMZUW9t2EK7712K0F8-)W|(eYy%`_3`I|HhKie6NCAJ?h(F`IJqd^+FWD^)U#r< zWGm&NWS^pS76S&EX28-fkB90+I(;NF{bp)l)(gLp?BqiEy^Doyii6_hGOv}`%$8;q zu<`B{=#5z6!Z}@~L+%CHvI=g#BbzAc_=zFecC9g7=llItUtGzKjApV*eR=z(E*CWB z=URWGid@Bhai9iZ+1!4X%@;#-%Wgi zl`1Ec4#{mt>8kNqLp#P)BYUscjR(YdnGlDbX>e9$%G{37P4qqaQJYEvnN|p zzNYc(3Bd>UvF1E;7KR_vNyS^yn);NNrYKvY!5GnJhqU9DNL)D0d@TDJ$3P6U3r+sG$Y_#q52aBc5o#ngf)lpe>3`~A_bqvV(H0lqNTYNCbk_uZdchHz)j$f8*;6s zUvV3DKp(faX}hAku4hN+8`t{Lhc9nBWmDHnMIu64d5kg=KzBIN;R!te87d)mm3?kx z`W+m7?1cO!v-3*6A)ax7>6ro|?clC-l<<6wPF7NTbK|Ui%$F>^gZ%FG&95klJte}$ z$~VBBUfGUD*7oUvg6B;>Fi-Z5<8i~H8IScBo>BVf8Zse1#s`8vad9`q{6ba&c76%h zVCw{L+Q}N|(HiuIR&l7#QT~?NoB!xC#zO$26}c>*Or1CTIQr1_ww}H|6Ss(y5TLow z6#0#om&zB8-S0S1AMz>Y3j3?XqqskY?r#CZj$Hgv7aT?)`qzp8K;=Pnbl!;4C{NC! zMYG{nc`8?eI#;)Ko5qP9s+%aOlM<-)Dmk>O$T#XzoGkKAFRvrMC&a>kcD93$Hf3w- z^P2}n`IcB#71TJY8ixh4R^}$$et4)?#I4Ceor9+oY6#~pyN279L&Ln2ExCWCGa*XZ zNed%qqMbg3^WtOzSjFw+8%+-pZCX|0d@C10%6v{-6?>}4|3%>L@~en!QC>36et~Pl zgj-coaXQ3{@6fU`0~VK`@&#@9qQ^&lhp6H`FJkrcLD5#}=M`S-JQqcj1$Z;8Z+Z+0 zLmDbGIL&iQ#DZ_jj@nAXcBG-Gj$ZuaKPGc{5N_F0%IUR{09dh4$Z9mH8mf^d=2o)O z{)I-Wh&<-qT-N8KteEdL#eX;|*KoBnQRb6=+Ddm{Vn9`~wL6KC+hs%-d~6YMyG8-SS1Y|6 zrY9~@W554i53o!EWz_L{2T~HrN^fa*TzWSi!A&>NEvE1o(e1e@uB*`e=h{WAz;8np zE`jLutc+$muWbQD=eT+PVH(y&YW*&!Y5wZEqjls-B7MM{l6&?H4X?mrIm66PHpI(z z5pPK=^iGOzkB@o9S1Ln-VEI%0Ja5c{|JX1{w|4Y(1D%{Nb;?&W(h1qMBwpet)Z2Gu z_pa#GP98^0UqllY7mdiu-8SC~jtyqJAvyb}M;s>vFwQ7Yoph;62t{$0BxfEX3oK@& ztur4m%+%I|J()v4xqY$A-;^tfvR>}GmcxD0ZQ8axxi#$h&i<`QKVeVShcRy7_l78x zu*lpb78sLNtlk~Z!0K<(NoI3aFA!(ywh>CZv1OvGoXp0c^vXL&-G?M`Z$L}7m$0-w)#fQ*ravtZ)IMAvQ{aoHkHw1nofnR>rZTmT z#-GuW=_`04XwL31IA3SdIM0W{?K<@c(bud}00Ni^gkPB_Lr{#-op-M<%8~7yY#SH+<}5IKjoc4j@nl z1-x6f>1T11_4ZA z*u0bFw~~tCuSyaamWc}T>6aQYVI!ZURxWKF4vPyLlE%FzVzry(9gwwL;ft|AFnt|t zN<7s=i;78CWNGCavd_EVb6aisXnP8nrmuUX=@NK^1W`!mBgNnssj2F$%cc7E*zizd zQ)HTTk{)HzcC)(WjMFaC2bUqTSl|#7V7OEtWYk#DfTTK2;$H@)EzC+(+ZAclMI2yJ zj;WO5FVD*P^ALs7q|vkc3~E|WJsLK%|4;;l8L+Df-DO8rKB_!d$^9IP;EKa-{&JNf z(~(HJHpCr3Kq!1H7od&P;BO+7z6;su?x{?{-$Ok2Rq)Mlcb7*z@2LFCMEJ0wCYwUEMESj1i+&P44p$EIl(|w_>1X{U@_jC{5pqrvv#VUX6&Z z_{^AeaCx!cC)&H^n~G0e7!v;b(YomP!^gPkdoElId|540L2PFe0Cw>+)u(h8QxZ

*Q+-7U{XV5AY5tAu1obyHL3UI>d0WV;Xt7kTWb@a&ET9Rz?7RPSo2*;k$dnA zQyyimWd?*%zGXig=_5&i8q2!Ay?m3UEZ_*m#P#Qw{(Y=bXVu@QxBOJD6?nOGE%*(n&SwEmgJ9tV@JTdYcMr{r+og-WS&UF@unE|A<2yB z_uS!9y4Ck8%o#gT)+ZdXYvMtNe!;zUm;^9i6i{)t(uDUgk)wC$F6#??T`sFAyXR`} zFigkdq!)p52m^6Ec^I1lXXdm4jKjX!)@&I*RKF_c8r|`>*J6{B*RP~ti2`(ox1A$* zc3JZAbA=KhxA%SEk0yjv$D2-F;72+oR+_L|aS5}zQ)@NCuk>%5T#d;~FPG-Lp?h2{ ze^!i37fe)%?ah3=E-WqwWluRgb>88oIB=o5=NO&$3Fg}p*#O6(KTrss4lfLo8glpD z4A#mvmv1;n9*Af!F1mNBgyO<-!}Pbly44{)Z&n-uE8kO~qG+eW9L-i!B}q*9q(&sq z#u(CcGu<}xEj$HyDpZQv$3dFQE>Lu0!=Zai%ZKW8No_oj z^FRx*E>Y*CXY+1t_%%ti(Po2{|KfEL11o{9%F?sGX{~e4&cH~| zz~X=^{L}EhZ5mu+O3%9dAbtNHYrwHq{O!@{jc$_e$lF$?!JNpH*IB(k zmx)vp?q_Ek(guZs+boRs)94Y%PzRT_l^hu0H?y-*il*MVV z5Hgm?*I&X$^1@hKUmES^jD(W}j-@_Cj@<^4G0&+Ypd)yS2zCY)#T!mIMc7mjj(zw8 zG}3JPB!^$N@$$4eJ4TiJUT>5K^&I z3#Ga)UaFdbaH{fJdZl9?mdy6!@wy=1IUljUQycHb&F9U&Q;N6Bn4ix=HZMZk1-HH| zjSdXn?R;K~!CMIs!P~0e3$}QtQb5urN@;l{I=n#>JLpjjX87)}* zt=7x)&z5^YwgLscQA$=Ln$iaVUV)6wLfaoNZj|Cewzd=e$*6K{Z6}*}y`7Mmx``A| zuyAZlUfWMp^$!!Ypu=++zzQZ4-O>LoAZ=BRXCPuZj*#-pP@M=4m-U<8n zBDESjy4d<7o!&3&YpP~7Zp=8lN8tJvAbQg-&0Zg&k3uMm;|@p?`s%#q0i zuh&IVU7rX1$q?aw;$X-yjz02C=g`F8OPpslPj@$xHo`|I@HuO293OpMP1H!bm7W@- zyS*gFqRKo=i)b?xk(&;0l=G!bOk0b6(Xjjs-daLnULLEsX=zd6g+fddcxkRAd+#Ny z6W<K2Fw z%aHp==W+{ZlkB!-k*z*DI2X-afAxFo6GbgmfD>>qFZ`}H?#~s#Nti8f{k*{-&o{lS z<=vz9#3FEeU}S96{uLUh64L1j|8Pq~PAQ>Z+b_TF;pq6Qu^EnI_CxI$SR`k_gV2G< zp?L|NY7t;pb=y$xlVNxD0lPgSsisX`K1`nND-RTsBQ*8F}fMW%t$VnjmjV z%)p~LN~*A8u|~lbf-BP&#AL(s77?W@(&#WIm+EdgFo7R|O%L1)U$B@AF&iQdEKav; zvM;Xgn7nP#EbG-8NLp@{Tfc689Die8E9()yx%ilWFWnFKg)D0#ls^PbU+l$7>(!Wp zFX_+>t)GiQO;4CYsnzxw`x}2FW}Nr(Hv%N54h^j+vIx|c=Le-WGD2etJ;j9#HWPAn z1D;BZK~8-@R`<@ArExvo(VA%**|*|VJ@!5p+8M3ut8pZ+_6(ErsmGNL2usNPmyJbua0q=eU9|5%bo09joXfW zyLmu`TG{z^i!nG+GBedoc3GVJ{nIoF^8{1782(@yKryoKNhaBL>$`r~)1w46ZP8}V zZg1WCEb=fe&F+w0*MJ~&+)a0S_m*_p9jW3;aOcTLQ7e&^`<4g6O4JtkeocPSF=F6k z#xtb)6+Yg5V(pz8`U3&90!38Ok_qwwDltjjBCFng@h(oew#h&}IGud{4gObWE{uJj z)skRW0OT!bmHq~#WBKa!3qnI*7nyoLonD}3ea>C0^Ux2QUY~?Ui_^vbmPznM*XvTs zbsyoUNq{U(KyF8Xlo|h*#nI;(JbVa7IR#d^&-yaOtCz^u19M=GYTuDM{qNd_Eb25= zv5(}}F9NW|20qt;{E*jR4A@4JEL`fJG+{rhu1j#)(I39Vcp zdVfgTGnx357%^sxPLj{KeuDR9uZJUa>RtfDara6G^Sd(K;?Br~{<`ekBYb)Q_TVbV zE`XxUY{^xKgmbeU8cwu88)9u6CSc9Eyww>c zg6lvJbuQ%(UNCkj9==;)eI`E_rEcUDb#rYal|q5jWICMOPm4?}Oz4sG`jps3Wb`ZJ zpnGdyS8^7|xVqiOu*vGHxmUP&2(i#eKd`yNj(DRWa6-$mMuOXRRp|z0B~Uel;uK>? z%|p~i7{sdA&&aR;T4A0QvJJy&W9zV4-Ysdcif0*tY8n&sLN+g$uzr2?{|MZ9N z))>Elug4@%Kc!!>z;@eB=H5mWFFWbA%)<~nT`4sL<}$0wN2;rB9Ia7jrQxTCA)rO~ z5Lv5O(8H%^h)NZd&$MWRb}Z@ssAjIzU@#0YB;;@oa)uu?=53w*v;?(y?-B+6rnIl6bWH1s zb$gFu&Oc)4UV}N+2BdmdRIb9y12xM?sFLR*e0y))oIEZztZqI>&6kF`@c%*>N_$4< z6f3di6BC!6FX`W;>TR=?z2J3SX5`RXjtYoe49mp5)LR@pCes!}Z19A6+DO?UQFArZ z(-}|TN5m*N{Ylkwh@K=7azK3A)`Xzkl1^|IQe+-dv-HgLqL}7Ek@0J311L0GVy4xd z%lDw5)faQ>XC@l9UsKCEwZkfA)XyaGVo}e6@K-TVzENazT>fV(EmaM)Jm(cJZnmaa z3Z6<{r!U#m#dk zrfIRtXp?^JH!BrYO5E0p;`OpK082Y=#al7@K&^7MfZT#UOi~ps1}JU3X;fW+du0Ay zl2|?XQ zs``dvl|faJev}D<6fm5NZ%2!^5#xcNzuUXRB9q;P0LzdmTkrix!E8lDHE6H&V^-G; zW%tkFU(&NSq!sbL4e?_1N*-i^HQrrX&qEstRARP`_7$-P=xfxC-nW_AMW#f zZ{qTgJZu(Tg!US07Ux}jREbA1vom#eaWXTq{ZC|XY=y#}Sf9v@s-mSOt;8rMufhgO zRBC=#1D_QB3*mpjhIly`4LC#)FFP*?oO+@NL;AmCEG3vACT>n%5C!Nzhr*5m<$nSY zH<<1JfpLIR+m&GC01i$L?!Ug^;b76zj;In8fAm41f9mD^ zTbP3j#QUGd{d4}$h&jQ$+<#Zc$;I~1e!TzYfq6je?Ek{p+5a}p1y!;$(`6$WA;#v>vL{%08-NJQd47RA{lMA`m9xY^kxxws@b nIUp1Q|6ht81q6cP>|*5P;^Aawj>5yq4g#Zm_#mMuiSoYyAMqEP -- 2.47.3