From 7a56c69a4e181b96c9e4d701ab4791a171360d83 Mon Sep 17 00:00:00 2001
From: Lucas Cimon <925560+Lucas-C@users.noreply.github.com>
Date: Tue, 9 Apr 2024 09:32:36 +0200
Subject: [PATCH] FPDF.table() now raises an error when a single row is too
high to be rendered on a single page
---
CHANGELOG.md | 1 +
fpdf/fpdf.py | 4 +--
fpdf/table.py | 29 ++++++++++++------
test/image/full_pdf_width_image.pdf | Bin 25124 -> 28690 bytes
test/image/svg_image_no_dimensions.pdf | Bin 2001 -> 2004 bytes
test/image/test_full_page_image.py | 2 +-
test/image/test_vector_image.py | 2 +-
test/layout/test_units.py | 8 ++---
test/layout/unit_int.pdf | Bin 976 -> 977 bytes
test/table/table_with_rowspan_and_pgbreak.pdf | Bin 5655 -> 5653 bytes
test/table/test_table.py | 27 ++++++++++++++++
test/table/test_table_rowspan.py | 5 ++-
12 files changed, 57 insertions(+), 21 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3b5e9044c..12ffcc0f4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ This can also be enabled programmatically with `warnings.simplefilter('default',
* [`fpdf.drawing.DeviceCMYK`](https://py-pdf.github.io/fpdf2/fpdf/drawing.html#fpdf.drawing.DeviceCMYK) objects can now be passed to [`FPDF.set_draw_color()`](https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_draw_color), [`FPDF.set_fill_color()`](https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_fill_color) and [`FPDF.set_text_color()`](https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_text_color) without raising a `ValueError`: [documentation](https://py-pdf.github.io/fpdf2/Text.html#text-formatting).
### Changed
+* [`FPDF.table()`](https://py-pdf.github.io/fpdf2/Tables.html) now raises an error when a single row is too high to be rendered on a single page
### Deprecated
diff --git a/fpdf/fpdf.py b/fpdf/fpdf.py
index be7a3fa54..58a7c567d 100644
--- a/fpdf/fpdf.py
+++ b/fpdf/fpdf.py
@@ -3401,9 +3401,7 @@ def will_page_break(self, height):
Returns: a boolean indicating if a page break would occur
"""
return (
- # ensure that there is already some content on the page:
- self.y > self.t_margin
- and self.y + height > self.page_break_trigger
+ self.y + height > self.page_break_trigger
and not self.in_footer
and self.accept_page_break
)
diff --git a/fpdf/table.py b/fpdf/table.py
index 642c2d40f..3d2528810 100644
--- a/fpdf/table.py
+++ b/fpdf/table.py
@@ -189,7 +189,7 @@ def render(self):
)
# Defining table global horizontal position:
- prev_l_margin = self._fpdf.l_margin
+ prev_x, prev_y, prev_l_margin = self._fpdf.x, self._fpdf.y, self._fpdf.l_margin
if table_align == Align.C:
self._fpdf.l_margin = (self._fpdf.w - self._width) / 2
self._fpdf.x = self._fpdf.l_margin
@@ -220,10 +220,20 @@ def render(self):
)
self._fpdf.y += self._outer_border_margin[1]
for i, row in enumerate(self.rows):
+ pagebreak_height = row_info[i].pagebreak_height
# pylint: disable=protected-access
- page_break = self._fpdf._perform_page_break_if_need_be(
- row_info[i].pagebreak_height
- )
+ page_break = self._fpdf._perform_page_break_if_need_be(pagebreak_height)
+ if (
+ page_break
+ and self._fpdf.y + pagebreak_height > self._fpdf.page_break_trigger
+ ):
+ # Restoring original position on page:
+ self._fpdf.x = prev_x
+ self._fpdf.y = prev_y
+ self._fpdf.l_margin = prev_l_margin
+ raise ValueError(
+ f"The row with index {i} is too high and cannot be rendered on a single page"
+ )
if page_break and repeat_headings and i >= self._num_heading_rows:
# repeat headings on top:
self._fpdf.y += self._outer_border_margin[1]
@@ -372,9 +382,8 @@ def _render_table_cell(
# place cursor (required for images after images)
- if (
- height_query_only
- ): # not rendering, cell_x_positions is not relevant (and probably not provided)
+ # not rendering, cell_x_positions is not relevant (and probably not provided):
+ if height_query_only:
cell_x = 0
else:
cell_x = cell_x_positions[j]
@@ -483,7 +492,7 @@ def _render_table_cell(
dy = 0
if cell_height is not None:
- actual_text_height = cell_height_info.rendered_height[j]
+ actual_text_height = cell_height_info.rendered_heights[j]
if v_align == VAlign.M:
dy = (cell_height - actual_text_height) / 2
@@ -848,8 +857,10 @@ def write(self, text, align=None):
@dataclass(frozen=True)
class RowLayoutInfo:
height: float
+ # accumulated rowspans to take in account when considering page breaks:
pagebreak_height: float
- rendered_height: dict
+ # heights of every cell in the row:
+ rendered_heights: dict
merged_heights: list
diff --git a/test/image/full_pdf_width_image.pdf b/test/image/full_pdf_width_image.pdf
index e05c5442f94863ae081fd64f7f422a64a8789ef6..e626c7cb0b92f0ef7d050f949fe0771b0a7ccdc0 100644
GIT binary patch
delta 27702
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 mC>$<Y%
z%`28|1`Ryz9+5g(c0`3LN>rM?q=WLtTecjbo;pC9#~Z~MUK&czzHfE(t;2_zQs9o9
z1?jyh=KIsrg=JN5^+5p{nDD
z30l#4s*L`A1IQ|M{GRDQ$T8Qx_uVlv=4_)*MAKOG+-x3~+#P$02N29&-3BQUD4>oW
zk(fASXWmqVwh+-#K&qvy);j!dxcPZ#zt-*begiBIEs6*f`KcLvUgT)B<|kmMEe0{k
zcp;i-M_g6?iamY^yvygRV>-schqpZp%@X8qWF&a=XKP)IM*VS0>4%C1lK%U3^p6?7
zIN$gxOL;grM4&GL$CSVDfrZ{Z{_dI~nc0*eE*ORKFp!~XhyZjd8Z^`v)vzortPZc5
z$5ssC4-hMz^pqpw247Y`F0LSZmwHax0jJH>7w^r|HV0NLA{m~q^Y-=|^jVTiBow^&
zASE|sFSiIlaGAG;)OH^cLEmKEbg;jVgM+i)=AEdZ_l&~Eyov4(raHd6IHS2rZlo&?BH9dXXTH|pIEmat@#M=GhI>5qO6&tF;}({*LUvGvy~SrHQc
zm@W>?>h{VjdFJoW_C{bnK0YeQ%jeCB0UdP!nS+W@%E7cy5{wwlKm~l(H+TscT&CKS
z0Z)#7HxqV{lA;v;=ZSgPWdUDN_*o^ivhvrjUq?swG(Q!Y1RtifZEW^_{>1X^>EgKi
zlg!~dn^{(d52By0ur!Y}V1>t?XIobd0>gMwZzE_gfBcJB+nVlnhF
zsYn48$bu%I5%Vmd5&!NdphPHC$y|0(0?#_Ih8%C{_91cmsy$Hp<%72V$}O}*SI?C2
zk|qCBa8bscVIEszLIO8F%i;FNk{OKq3&8&zJ;wxfQYHp>YUt6z9S4#QbT*?Gx^<#r
z#;Z=E-QO@I{y{=kVX?Iw5p-T|h1@`{aYIc}vjs5u1t`Td}SJhP*+D3b*82Xd4+>a3Pvwf9db)o#wuf!9a_K;y{no
zP2txHU&;Z+y~b(hzn8~|~pH^0V{L-v6Sfn>Qw5+9wHNDCykh|N2ok|lbRSG65Q)YJU2xw0e4ER43BdfIF|7QjiQiuVV;?X#k7S$Vsy9J>j40$0;E2+s9(Y)!}
z3m5ca^ddYeVd$l%I*JBziB9C;*=(3diMnE
ziZ1%}*T703lZVP@IedS^AHm6uzVGJL{>%gDXo|;Iblkh@fBblOd_?RaV%K}fl2zsc
z@9*y`A5J~^knI&rw~G#2xhY7UEN!{iIW@Ym(YLD@m>E29-u=b=LJb5roONK_s|Wv|Hse`Z-qfZN#n0r|KE`t
zzVUdiD&j>&pmG{o)S{sq)J`f~;0GYnT7+2IC46BdJ4M7I<>WQM!?VEq?_Jw%E!Ew=
z^m&lK5N4$HTz;ZIS0zL{Ja%0Vx>180J)5iT^g%xTdmQr`x~`g0&@x;*cZ!r%C_Zo&
zFYw%@hl^k5bFsL{&vCG=*fJLy-TX
zAGj>R6q;Rinw0$KB1nV$GvV2FBz!(Ww_z41bRofxE7JfG^4kuwRQ=>HGnvSm`Ih5Crqh!smfWq62tBuBP+~>U7SLMo_0+4g7pXQpg
z<7+0zt64tWj}qBb6h-=G`><3DWK7MZQn;V;>DE{;2%ErH50AC4ebHTM5i@#@P*W3m
z$N6N&BFab{8krkgL&u}-+Y$u}%f#j5rjCd0s!|7H-_91qCy@E?{p$XBz4ym_=2-F<
z8#E?E-{P+$GUM9{*TK|Tdsn>2pu35a0I;NcpvdF^(g^X+dyq}tY_gNb91-o|B+UP0
zgoo+l2BGAb5%IBeFwC-1D=^OoX2C&-hdE*d`R<4hIbsjTRnefd&*OUM6kafQwLB(Q
zu?MSDXZG!|ezozV38{9q@@P)Jn)NVE4SN0YYBW=r<_zgnHN-7*ziBoRgndHL-zscR
zQEv#=<}X2Eke-Fu*nij1`A4t)Hq(VbKg;Yw3$J;3(=3iB>j<4_u1nkco|IQJPJI>j
zo~?P=)MS;c+35ak=oJP03)0=IbrU1?d9x`Rf@+f4SK34*25Lg+zIpsBvOEhu%h1LZ
zm(x7Q$5rMdi03pgmwb^)P@mW3wS$g
z)|=Rdz0~1TdKLQDpqj})r!$Ss0SMPWq;)F>2!k~Zx9e9-kn
zmPD~>sosSr1QL-*pN&{vHbdfyB>SYDC8S1B?G<^14l0#jk9T@l%in>*ZUZad$2_eH
zK*`L=b?dD!Kuf>8LLj>^y_qa*amnthdUaQt^wP}xaod)^PuUDV1`$`OD1*q*qul?r4jgQ)dzI`I5_16<&w)5q6ru4>Bb=Y3!ZHlfD%VJ
zV7nHMJ+q3`l)u<8?s}n|%2=G-5Ky_L1N1n39$Y)zV88DeDl_QAuBEo5bOw6W-Jn}f
zjsDLp_L8LYQ`g!rI<6cSzIqqO<8fua>2u~v=}>`lHTRp*Ox|P>eeHO
z#D>>#YpquI62_DYdpUA?d2^P?;uM5M!pQN9ihqEr{w>(n9zaPn`OUHfK0O+I_T>iV
zBb+GGeih!Chb_H5K#dD29q;&5#hbT>KGhRyGHW|4m@DDbXr8N@i(BqrXN*E0=9NiK
zIrqS~HaodlW5?`XPaJs7qWzU;1cNIxlX53ZL0O02=o+Ck1%3*BNsu*DJj1JHXD(MV
zbK@)x2Ig%;&8qj|=lt8U4i$-1TMPToEB`*5wVEbm-m@Z{WZpuhP9RHAUw3#}*7)V2
z>Af_462U!bS33tn=08Gx`^>H*7+;iPLvHYg+54o5md>haE171s7*0aPs>njl_j!i(
z?Mu-@&i?jwM)ZZS?&epSjY@+$*B+yS1n_-$_lhugSsi2%rt@wxMA2Vat@<_!|J1YYgGtExcKnl
zM7%ka`s1bWnK+&i!-&c3@&}=@IisLJ)De;pxXWaJj2`++AuzK`YQ;KJKb)?A)UYR&)|vUJZk)zW
ztqG`(+?$-b@I0l0_-mtVAAQGnJl;35YCqkfb9nq+pb8R`cMwn!w%BP41AL$piFN7y^Uy|qwq;UYdMg|=EYQ37?GLskjlxe*
z{)2s{{q_Tgu^O?~yG-F&?70Ld-A^04D~t1(u2|hB@yH?wo7Ig+Pj7ZZ7B|zkDBML$
z7N-1YRA0gk&yM66-;dls|7nD7=Tp_l`__N^t1P15w)QW4CS5_Z>>I*+WH;8j?@C5&
zD)W#j8_Ym7PjsZjmnSDrfZO!+^@LYS80kC)h0Wy<$0VE|u17j0CV<1bVma%Ev{3V57jU|^i!
z=;GwcB*4Isn^#ig9^@Dq5gDbxz{7rtftNv;fser;F}b+FH`pzN0SNN)^HLcwz_)7*
zj3D~5F32oQdAxu%xuB>7NFM-Vm6X)tWFY+nh>OZg3V`B_5kR&`QZ|^K17c@~1ZOz|
z*$qH8UrA~ONH2p%vZjKOfq{{NV@iHfszPvOaY<@!v4Uq_vK|A}Ob`%vFG?&eE-6h*
z%~Q}-a8Jz5O;j+_Ga}K&L;!FYg2CrNaM&=4ok55pKyqnO8I;M$WX!+-0HjVma%Ev{3V58f
zy>)z4XBPjTB{CY9$wY7o?mfL&~+jd)Obn6O*7ATY!FBEsTK=8P`ySuyVB$)}&
z{r&Mf=RD87b0^UK?(6q`{SL{*TJq*|o+FRkd(F&5>#O%mN(>9|_YVjR3=9YiU=|pJ
zU$A$yAh3Vn;2`+1AKD#ee#S3u-!ZY0y_zI;>3UP+0xeZ*6I5Zf*i=M8l8xX+vXUeO+B`
zb#--BRV7$OWkp4KSy@>rSV?hFVPRoGK3E=FZccVqR%T{KdRkg)N=kB4LVSE|Y+Q86
z%`<=dcK&fArC-X|mUro-Z$@?Jkinn_Bf+D26;AyA_s}rrht`@AO
zsvS9s6^1M!w>xv*)uqTT5zthk$NyXmEdE0QBoe{d#+QIa^mJV?%3iYiU8f2oI^~
z1>nG{t13t_U_%2ufi9N-K{S*tJq=YuzL==UNWz056%-L29v&7J8hn1&p3pLZuQ~F}
zl^T6dQ&mY-XR>KZZvu9F!2W9r#!eM3Vdyz!v{|4tK{f%9!lsE4wh|-ab#!zBU$>DD
z2+{ZlPFf#*`})PhJN9NGUsKSDG@VZ07#{_E$w_f>Bw|uh3TT*?o(7o22@-#zhPind
zh0NzgV8~032VyQM5m#4Nn>e~&pl(LiHWc%r*4{saLbipTI&os}wsR!_n0NMSOKWFK
zTx3*iobQ^a=glFTi#BiGJbEFUKX1Nh3-BF{y>eTK?-KJ~=q=hJcq3a3Z-Om>KO^js
z*Y*{lhOJkRpE$Yek2_{&H8+1wrZv~sCq_m^$E_Z1?Wl1TOv^rK!06?n=Hg=f6u-bX
z_9>Z$KG8V42!@|&TwF}PHZf=W$%i0==qk@$zI}14Pp?_wrAw8imD%Bu(J?Qno!#8s
z-Q3*ZU8}{nzcMWu|CE0vel#&x{%-nBSLsh&O@HpDb@~#r+(33@eEfgz{k3M%r$Z|8
za-#t7YqiE*>ppeHjF~fL&YU^pzuWW~)2C0De1+e@Z?W&<7x>{XY}#M_VEXh)E*h
z^D#)n?HOqq=XYE-OFf-gT96(V9(Bpn#m#N8Z*nS2FO*`^F_aM0Gap#QA6*T
za+iVZwjTCo5pdl?59mSu_Z`taCF#&^hH$$4auYgSUp8g*Xwk(xp|2@gUteb;b+OAVc|<1-Q6x%VBvo#Wa*<=f<|eCfiX0e
zqFEYzXkHQM2#=Kwsv9C*3(t)#yR{Lzy4jtZo$c-MA)$fO
zUEHRnk>)(T33N<1DVsz%UPOqF)nlm398QA9;F@`9F%}j^MsS^&!@+vu-CZ@$_Vnx8
z^7FF}Tn507w)TJ6piuv*8n@Y*OurFyf_UW;JR_YHuMXj`+A=s3x+W99wi=aVY)FT#
zQddugr^e-}E=Yx`DM|Y-n%%zH-rgD=7!okm)oo^Geu2;vl(0cpHc~q(6^yQuJGR>B
z*Lp!Z2^g`pNUE{~4Sh;%1V;^BF92!)aG)tRCSuQd0BnD2YmEvF@dv+G65YqU-2}{y^7P#NAK&`(=6$}&<&2Klu#Kut
zjE_rgXlj2n35V9!%EY9^ymk)P(ZQwb?CNevxx8ol{+mVZ)V23w2a)ON3V=FYeSrU+
z?WfId-GF}}00uHZOfF?1W3fcIX+0(`Ug^s^KX|QRJ$zMN&84@eJ6T)X*x5RbUH)r&
zGqnP2)HTOWa@9Om-$?Ob42aH)4jSk8dzorQWfFY)zd
zk46{k25N8JzVX{hvzs?so0_A8LIbC2w6n4bar~79Yp~jpIoZFEK-q+;2Qg81Zn4Z(
z_`^o|rKM5|bf%(?v;{@0g9TXNg%~d-qvk<#I1cZX@?yhx#;^N{R4zmm)7uOVg
z=xFQe=IZP^dfYfSXJ;s-&I@m_wivwH67QjLUEX98t&nHC&nsP>Kh%k66c0V6i&f4V
zN9}}(o=%P$jry{VdO}?`1PK9N^}V|3nAv~L>#dEA(ZOLs=;Ev*4Bzq)7dOrPE529H
zY!x|7R7@$g`On)pL3#K7>P$#%oVh1U3VKO*4oh$^*Ru`jt^{QL#{2slK>^<
z0b2ado{LHi0P;lA&ElcX)j^}ZGc?rSKVay);q6j0fE~YXFoytj1Jy8<-f)Bf8)Czv
zLNHNh7vr3$BGg6e@G6cxU2E8b<-?sLG@~D8gFSGwVF>G8|uYLS#xviHFsB6r>~mGt?hqF0JyxR
z4anMAbpX81uD(l3jnfB1J!~q%g0=swO5?C|kW>R3=*N`;=mSAP7jkjc`3vXQbHMn>
z*a!xQ8Lu)76|AqoT2UQht<}tHVx_G4C2LpB(-qBp&c+g5bH@f~kR~Lwt|^AHXs0ki_e`uM}WOk+c*7UgTIUZsu?MJcT(5R@eYs62VPY!jKI-J^vZw|pm0ig=2HQGFxh`J3
zdU|v|sGwe$V{)%P;^?9oyRTb6z-*A2J`Vt&V1Q?TI%0O+x4EG{DK;@00B7cwVwXpN
zPd37+tE)fd3Zh+VVYPqa83$LVQ>{%+BifSoJTHxAYyz%|bf)aQ@pfENJpu-Wyi0GJ$~7(;-xP*5GAann3rn3I!w
z`y&@St;POkq0C0J`7_EHB4PB7~;9X9q
zWAOk;w-Lxy~Sh{O%E%Vg6dX{wX
zHoa3)S>J!K*Ek&qz~26J4^*(1)`Nr;tQ#;~MHk;At^w{${$aS~HxCfe*)!xW;u#FX
z1*4sL6rVW;fWB87>uNL8GLmL!J!a?QB2{gDw8qW#8A!AB+uYsUo&H_RW439LM(gC)
zDN5JLs(x2@{X9pFHXQpoT?Vq~EA6tuK5CF5&vr=Yg-Delj0$)S4tB32;Em&xOht}17dwUC8+xy%}tNGFh$4Y-s
z??9k~v&+m%bSnTl1E4^sW5bOBesE7hH>5Y3q5UTZ7ZTt#F-GI=`ZVRcmLIh4Zj(bh*}|i*y;kd0)Ge?HsYJIz<>L4+>gEO*
zATJGktPKtg`(lvX<784ey#c&x82pEWi}TC91UM`Lf`UIBM8MkGyzHE`nQk6)3UT!j
z+G35T_USe%WYw=|J+x3FIxxHYJdSL!BL6ov#m}TL&`%@Uad`A~4vv
zO9$`z%3T~kystO0yTf{eU}yNBzJE}G)>AJRbTIo97}Ov8PB1C){1Q{9H;y48CKs=D`
zu-3zUT6zz;wc$kd2${
zcMS%nV(lac7w;zgOh1g3WI4H51gw84%rDHG>FznV7`v2~ws_akZqIb^DNe`VwH}&}
z+Ndw-O_+xHdv%4drmX8ZH$w?YVzZuQ;Gt}Eai_^BgE4mx03ANK4^+eO28MuZl?(hC
z-th2NYe%OQ1GGzH5CPAhJAr^#5U`*qYqtC7xy2Y4t?da2*u|%=J&9f(9v*+EnP2-u
zN5g#1$?My&`o4jIw(NsTlr~TZz7;grn;!8ID3}+=y}E12efr0Xg%GZ
z>E^2?-95WpJw4{-_4f9FQ+0n)-Y!rET^z^GTef(jqqUv0i?eo1w-678Y!6)2b#iiY
zbc8oY$H~p3{4W2VqvMo9gQ4d!TW4oS`$+M$#|G2Y2km@IY2+BandaD
z8xT|5a1JQw;tb}5FU}5&b;IDbdsk(+{EXjp!uJJT5GTnmY8?R4&d$yO{y|Sw3>)+#
z0MDPID6X%rg2{R=0+u3Rdsn<8%t?B>SSo=;90PUPes3?-ejIjvQE!fSbjCGyjkBHe
zvI8v!W9}W!bhou*h97@ztzZ3<6!fu#FKqE0&E`3bhP%BN9=Er3bOLZ&m(OeO@?s1@
z;=}+i0U#*o1As8q%%ANsW`1ca25wiyo`d^+`g+6(#L%?^2M-==6*}R;drbkq{Og%V
zpM2x{(0OL_Fw-C{Gs?y6Li^w
z8{|F04u9&O99Zk5(89E5qJ0Q-Fx@o
z?cTlnXn%i_@ed>Hzy9!lGU0!v-^9|4PFH)~_rj__%zQ4?;vyCSdcCt^#d~1ykFXEW
z@WY7jzsKL-f6vrLe*M20{OT28@4alx#$fFY-;3YxHoJVGrlO*%wzh2U*a;InjXRm9
zyOVrdR^!6z7?v_9w^(r<9USZ(?Cpi}AvGJ*FKmDCYa6NISHjQeQ})3g0bvZ@yn5-o
zU1pcg*OXUO)ztyu#EBCpOq?`nBE55)fHr>o_;F-o$BqFTJ$kgKrzf;H?(VdEOI452
z3;4`jcu97m5AaXIO3c4QU-IvfIZHk`K8|DXhVP|scbQ#03kufM)mO|LJ82^P{;>!_
z9Aket4B&W3a7a?z;$}Sb_c@^1a|tCfN)=_237-mI+ekI#-(-O3;>+LeG`o1F8UX7X
zD&~!wH1Bfwf3Yxbp`q+8G$b?xEm*Li|IZePfA~w#F*hUNH#-opysWyR2>>TAt{kH9
zH`Y^%FTob+J@$;dE+N9sbqy#C}SqH
zcOO#h|8Gstb3d)uP+@?HVYY`OCdj3SON2-LPA^mHHA8P+Q$$x**
zPp{{V(IBVOF+c|fc*|D=Y;LKUKXK}^D$_oI*+>`PeSlC}nMaa82yGOc70)5Iq(o~G
zz&OYNbpv&`Z~K0=RRpY^KWQ2R9Qk*Wd+|4$2sk_})K#(R(vRf$OWz83Mi&qAb#wxB
z;DEP8!1|Wfn)#EbKUy_p@^|*vHwu4y4G&rqd!wCxw3ha6o&N5h_wU{N-$IDHYKXTa
zBH(}sc!vR=tSkY*w%P@gXFOId`j&i|F>AWyq|Ef`)3{BY3UAE3!05$m>db}9U;b#_
zKHt>Zen=nxhw&)suZ(~g!~$Ty5wN19w4trNZh_Z~$4vo;b^9m5Z=M1+dGdecNm%!&
z=8YXYdJHRe?(C2fRcaTQE_-mNm9@
z)Ge4gQwm6k|M`0AOcD=OLsa0Lgq#3Lbs5Vb)<8Ep=j6)U2}f)7?4NS(-g_t*`!Mw1
z0J(y<0dNZ_SYBM(*xpgUVCsLYD?o-v`U&D*r{h-lv=ggkPRGj984I)Mf#)yZ9BtDpEPL9rW
zBoG@uM_ed!vY8P)VkCd+^-}!=4UL6_xtIf9{elBFcXl^2K*^jR8Skf!n>%OD925}{
z|LFsE8H}BF$AjhP&!0bc{@mF!$B!I7u>03}A*(
zw12FV^@F5fX<>0oHvrBCK;~bA@Oy{vAs`WghO<`PGeZ5h-fOsflba&~atR&IJ{Tbn
z0uD$4S;LC`;OS!}1w}30eNEnT7Cu)axIzE{zy)|Fc|Ly;uD*Bo;e-$LE`1waoSYmO
z9lTGBAAYEQQWxt+xR|0C0MCGeMXfymID6sqHKsv~faB@7G@YnMK!G|M}0K@CNoD
zvms*4x*#XpZ;uHNs$LG8teDj$cTG
z^U=#c+{1q<681U4Kd#@fVZ+a48`vMC!M6_gHZCCfn2L^e>+TzL@IUex7F^4dH0!fQ
zDp-SnTcOmI78JJi^#kCd=WC6_h%qAI!i9`*o(O2T8}7yC#EiinR~B%6z}m(dOs!Ts
zoVw@hO6oC42hRe-iT4jg)eqh^82MN$ZK5Al5+i>gg6xk7|ib&9B5uNZ^;X_(iBH|
zFmD20V}T+rSTIin1j7HU^n~u3nri?g-}10=q^Pldyf@QT3TU_c&s~lzqU`O}OA~*F
zjSj|Zak!8B`v*k8D?S$qusAQTb8xVE(R=_LQNu8b7cVA6@bY{q;QdY7DT0qjkNe<@
zFFya`v(G>M?6Xfl{q&Q6gMIu}Q`<5T(B9s`?vdX73HS+pW$(O8=n+UZ#)ubs>CnZG
zb@l10E(?IUd0m2nBTEDTE-5%*pN2>qh`egM@47z3@j$
z)Wag+6gCJE(D1N{daIKZ$4*^r7>t}~XZ)U>#($t+qFuCn|qfdG;&=ECfJ<
z0fJ=diw^-DyJQLX@uG!4-7~KEBB0k4UhD{vH};aH&;Cg!fb!FLPH+PY6gzrTf8IC3
z!+jjEPgi;7%xQ4(X>c(IG)XfC9wcKI8wcS}BNX(S!owI{%-5Qwp`x2Ajaqx<7VNO<
zmfLUv?ZDeExAYs;wQzgBR=P+WQ1Pz5|>o0G>U4@>AyG>>h(26ZOMfJWk|W^uQSOf;u3v$3?*5;bw19L6bzyUCaT8r3y|bKrxC(ELuXbt5cIV?U-10HlMN%x^kke
zgwQS;F9h!u71V!`f>22+PM_j{Sy?>@IDbSfHkblJA~Xq-T`tq7dQFz(LDO}0EXH{<
z#>c&B^DS@k-?o8^$PMaKsyF_>f|vRg9X_fkf#}AKW#ujx_}j&>^))(?t(Gs
z#mC?@lRQXX#>r8joW`2qQPr<(3Osy31jM<_q`Lkdx>kSP6tJ)2#EGMyKrKF2kYx&J
z5+tPHBHl0jG!hUqHA^!O5m0Z~Be$n9$Z6!q8Q@T~R_bEqbsalP$IsIVK~jF=_@RHJ
zg87+QJ$K2)MnK+H58neo3=;U`ZA>#bwL`$E7{wFDjc6A1!VFmVp;8(ScCvsWb_$|=
zri~aQwzhw&FX&2tek#1TKZ5{!`pS%n1Ujp)W>Z0
z+p^fk1W=yC00%msQj2`>zNnEM!QyAb0nla{0G1s+a^MqGFfTLXF8~e0f98zgS#a@R
z0gg8T)C>NF$$y^4P6}wFX%jl=ca*f7%n8S2bHINdQ@|qxc=o6W_^@U{1bm>>A>iZ(
z01d_!j^T51381Z=^`izp0U7#EDLpOVa7!mSblPtMxXtX$(OeE_T1oiQ2Lt5OlD_~P
zW0D8OmVaQSg5rZqWoNzm9$TgCAKI*x?!{a0*7t}u!o}MGFefwJ2xyQ3N)%iyZMTMn
zN@9Ns$oSZHB)pbQR|B9eJE#Y*4tMlyV%a~mQ(-5b8L+cef30VioiIWM*xg%t^e_P)
z$xct}9yT;Rkf~;5GovPD?`?!C
zvj{Lv06cc&;L6_+Fg1k*$>IlHECAw^X~eX1r_)r{%#0b$Tx{ZCeTtnmd03!OY}4bc
zsE_K|3I!j5bZkcTRDYLXMg_Y;!9#x^ZH6GpOik&MC^%vadJ23C7d`+u83A!=W(u3Q
zb2bc-&Ua-}{cLTLp!gmvCuHS8tjd0(N$n96O4Dr;lW$
zB$JEhJ^+Y$a5Q*V0yr!I#HA0mb~L5JC?IXl7_Qpe*h>MeSL^x&z@FOqO38oeEgR*#
zgW|O_U0pq?46v)@_|YSzV0u!rpkR$@h>(J`sDOM6=bJRF2snw73@Hd9Y}`W9S1ph`
zn2bQTTGrL${fT-r#;B!-$yBQb=}LE|U^fCj($UdXeC)_!Qcwc;kcQQh-Rk5afR0|1
zxQ9I^S4e6I2-yF=!d5uSMT39MW`{wLucxQ~n!U9|KpXYJ0e&eyIJ%Pnm$kP8;86rT
zb2u$Ai2&z5G)O$y?O4#m^G(N~BhP}K9MH%&c*4fop2si^GxhT3evz+R_p99Gl%7Li
zk9egjUYh4-ZN03my|d`}1Au?88R20gpts2iD+gr#J_1%6gkv1ILl}RlRk4MCp8N9-t0}v?%RH4P3NCJ7m-{m7N+!V8c0s`-sR@Z)
zcM)*W--TJ7&`=K>0dap3{Q*D{(1QUA{?(^0klQ)%J_fUht@^F5UctRR-CaHB)z(rz
z<(Hk}9X0S8764Q~(%RZqh=9MCodv*zPE>FX0h(^ak&DHxoHfz~%$<&t1OeS9aX=h@
zS@RTZVh%}~;=p=w9l!S(ySG@+J2Ddi71z4iWtfNwS|$--OKX3@2};ywkEX`QcR)9@
zaE|x$BZCB7?9SY~V8Oikb8(-9$MNu=I~^uXU?b4oZK41;Xh@hPW19`O4A4g9m8CP@
zT@3PExjT3mHH3F-Yik?N^7hs?@$Mh3?TMIXnwwh+jvqPr;V%rZ(_m;?fC}D~xEBHc
z%=X~pkL@%K3+;a(DCjT|lHeFm+`ySw!H?Pvo^g}2tub3Wp5~^c4M6hi7Vpf~v(wU=
z_z2L(TJ?5UODn(c68#0=H#>h@xY33DEeYu2rpBh+V}}oX
zfKi+r6N?Hm7aL5@3!;nZ=2f&GD*&<@v%`J@8-ea_S_B*#8c2FYZsR2EEfS!5a)gP0
zJ3D(0E7eB#T3f59bl?Si%`J3QHNM27f{pc!*$nXX;iTx84p4C6Z13l4Mg$4C*p2qH
zY0rJOpdfz(w8KV=JnTBIOg}W-x!u#s-ifwxc#gJFO^+WyKD+?5i`{sya=y%(8`~P)
z)Xfgq3CHM~;}Ec+t|9yA;r#%3>QG`-Gy*O_K!fo-g#bu=bLY)tJMJRjpF8XU5F^CZ
zW#NuqL-+N03TsEc&%`!oZB&mJ>u~&av77Hs*Ne|_4#FNA4`)w?=joqWb!VXjHJSx+a|i?u`wLXqPA``WQcgi@AKWXU&@N
zy>UBs_})(Y1@9k9>Hp7g$+kr*l_NV2WfXr09sJTrr*W@gTu{=JcJ_-;{3
zoBp0I|LE)PDjO%^#G80Lz;$I=Kg%v%M!xQI&ZZ7lz1_y{Q_~>ct+KW@(p9ZmT2p^f
zm3HvpUI0A2Cn`9s9bG(w9gPx?q=a=k27YBiD(p4!^!VuyHhNp=^_n(C^W2vo4TtRm&$zTa1DGCR0CB8UM_=YUcd
z|C#MNn+}%EoH2d+)Q>Y_ZXMtJ>C5xnRBCHmCs(bTc<55t$+ok%W#>OUa(aJx>7YAT
zL5G|;(?V^nW@yBz-r3c_@sO{kmTvJ`9p1B*Si3?D=aX$4aea0xlcU|
za26Pzz??R1>J(2mjgynJ#@)lyla&zR1OPvwVrSzzjT06|q*4B=`J(!(^dsz8QvQ#spgEeZk>aFIc22(!3tEi|90l*~{
z#idDmcQe4yfFJ^#I_Jr1gJ~&&Jm@-;%je}agy2H+Hmfo*Pe>Fra6k+-osg5Got@VEi)%FlgE+O!bYg(k)*E|?
zuf4q|`DH6P4mu;F{JnpMCLwxJzG}RSD_$R6Rt|tl04$FGGQm^Ze$w7V#e)w&;H#{vqN~gC
zu3swElCr|0H~@Tm1GpFfTM=*)0*<(T1OUARJho8ep@pdMn6%)9kA6BHTF`a(KlgQo
zH+RWF{O)>0{9LsZ9|-E@mRb|+!R$K)$3Eh!B|1jwC3iON4RygpjE;P{q0-w*X{w%DIoZFH)n0#zewFOL(0H%N093FvuOJ2h
z-vq!NK{xLZ;Do6hP@>_zEDgWT053CG+1k@Tz%(`((l@`qY?`MX6n{JWF=dj4gYM>k
zC|R{o+xvEJG2v6GRMyXDw>8!a)kDaBl}tYXECE2}l9IfF=v_OuzPZlq;PyZcINob%
z)rd3*fG&UBxp*}GGsBRu1~YVbyWHBwfsP_OICz#D*A2S6dT+6awN|U1tEn8XG6B?X
zX>Ji(19p38rXP*J61;CO1I*2j-nnDzKYjwhfE(aqedD}wlb2K(Bog9h_p@B^;>7WE
zQR3*&aGjjbfA4Nnx;P0Z96ig0nR##Dz(8N~GOmB1+Wu7kHY1=)t&;8S!t7Ef3_su_
z_g0jP_ptT{z{LOK>hi)*tvcR)+(tlpw7zJXQi7;jklDz47e4&>_+tVV7Z(-zYm}g1PHxoB
z?OT5U@W8f!YqwfJ!MS55E~*@HQ8)r3-B`LV!{d`-aRG|}#RH;l5lNw!_pe|1_k|Ok
zRk8&Y6_W%eyK_C86e`q?oB9VKJ5&Cvs;U%kn~wJ
zZw@&V4!0Z`BnOk*RL$>ef5h-Iy|JEi+h
z08~BQnlTnWDAYE{2%mX|H1fu;8he*2F@90KqN2j0I~t{8aS;G+-?sVnwPptputl$L
zoZ~TWp%jo5gdky8wb0c;2*?ia4h{@&RX7qr#cfytN5T(+-(0rZashX
zv&8jWLFJRRytfkdD=%lGuLy7OUU&x-1i+k#ZNL5U+8R*M-n}K{^MfHkk-j&M~d8DAmlb%C{O5Ke$xV+?qZ^$q;Q0!vL(QsTTNn
z{v!qP2K0AaP{FL6h%H+PaEss78wh_m$8F5KiV+?L7dv};x(gRA0ibYkg$@9@eBv^P
zSZ-Bccb~TAWkcm2-P+axg{|oq4yc-yT~{Nt2P}RCJiG&a!EFRA%*qM>?YCcE{Q&^)
zT)EziE_NF&1r&nBnO#;)r&CuB6CYhbh=8<6#Nl{eVYO^hUC|6Rmr(vq8_j=uo3gz?
zPXv^&t>e9^7{0|NOg_BP@+}6K9scXDn_gXwfIinqL08YYBLFc`I}3C$^;kJ996Igq
zHxM9Akfi#-7?aBscDLHTlykk5)3TdrV$}F6`<7BUCb-r({^*$pqJH^#`3x{KJ8bhW
z8(%>MZwr7Pb1Fs%h=BaEAnbqaKQau6hdK$6_^82GDijKpt)qw6;upXC-6y8DBTyxH
z)MjrBJ!7DuV5}18;QNZVDyn$-Apdf{LcCvfZr*JU7`l1WhL=&n+n0Tt4MUByHSV)3
z#Nj6ZW;zRfDfIOK$TobTcQI_03yY{wjh}eylOMJn^^MA|ZtLyq>1uy(ZL1SvLZw{R
z#9HT;FI9|Csqy96h4~lrOCdQpH#aAjE0`6!Y2$hVymj$v69PJGXI2AJ)ifN5WXZ13snl5jOlFeg*x=
zz4$IwNXNSwP8t{Cz6FjSvJ;(n7_3*nRc0rK
zhg%t&zTqM`2W-3PKv@Po`gJn^;w^(eQxG25h01c?z8LxPkuN*v1^_O}&&Uk7gYB_{fsnYfg#6$VAvNE}X8Ck(UtzG^1)nyg$s@b2Xy*0C*i6U$ja{z_40W~
zPxsIkD{Frn&Ie;qjE+`%HVv*yRy{4FoC2oW-^6?SO$r4GsFc54D(Hug#K=Ye;VG@(X)*
z4*GbV4Dm2fx>RXklQ7{D+&UYl)C6~*G4=H~jK*)nZKdkvoe3~ISOD}nd8(cPPAN0tgQN$5{LC{}H3VcEf?ZvMTdY_QkJ%0YnRoF{
z-ok&ghnmtoRf3Ogj?}W^R(;f#_!J7cdr}dXFIU2sp3VVtf>*Ep=DF_y@bYm0gebOk
z5CDxA8V#m88IOnA03chHgq$+)n-#;uKW=3LAKUR@>$;W86kI^1d_@DT43(FsOi^%?
zZ7r7Y@hAI$F~BSY{QBAN0PxcBllA&R1e||dHsVUbeh$b^m)NWru0P<>a(IiP%LCMIX`$wNe!nv!~j0JC#~SA9o-n=c>Z
z3fdE(kq=KlK5X4$5vn
zb1?@jW&3QjTO=&n*VRYL7#)~=T@|anrO7ianKq}$%!|C=SvBRL>Cx0&x}iR)I?Ucz`&Dm>FF*xaM+Busx#5mByC
zZ7-nM&ER~=$w^6xNenQP0e*vkM~~MJ4KhG6I{0dpF3C}l57P3Afev1C+uHkoHBnG-
zEe$@tELl^(TqX#pP+q8FD+k3XZgM7}LiSibJ}(A?SL7o=8IHlAufF`^sjtDsmyVvO
zsQ<=FDFQy8U&4QCZ{bgj4t3m|
z#iIjjkz=(0I8$viu~e9I@Tb6WK(?fdfUUeCXl?D@
zEVx*SfNa4}+%RIDLEScyPobC)OH&Uh9@p*Vf-OrIq8I28FP;H{g1JFoeE!K3q#yte
z=s-c638gH(h>LyQy@`L0)?7l+>)n3VPGL&v`o&Vk=eYn_TqkY@(wbilE&A0QR4aH&
zfvk7Fn74kZlVt*+eE>a7k2#n4;u9_qU}jF>=b!x>75wGGkz+N39FV0K<62}702-Gx
z-tB7<`hg|_q<)kGGS`|cnpU5(6{-fj{ZP(YzubaXL_pd0bi#j2LcE0dIDAssNWje(
zn1VAA(1_O!O-om2Pl6-0D-3W&Zwu7hCQ5irK^1EUw8gc2!B4=WJ)`Oic4AVN%bqGN
zVDqB<9}!T7%VDw?Qe&G@ciMUsNhT$0t!z^WY72`Kx+G}
z86Zo?_^b~ER0@A{G;L80-wfn{htm32%(~mS%
z?Jdl~t}in^d7+i?U8@h%A+s3qz|K0!WZ3fif4oux*vA05d;(ubSDd3{iT>Sgk*}d`
zqo5$VxUheU8NyYt2NXeHP_ave@^MDlM~hUcu>T(p&zlrP0N5nP^rKV;6E{;LD^5=wD!MV{-|3khI;IfE;s^(wyOQItQLfzYc=
zrig!_wkjnh?WEku{bE{7jFB%gBJwl>=A~uc`RM)k9z(#>d-qrL_0(e&mr!zHXCP>e
zr6bl+OoM9WyPYH+CA{VhmcoQXscQ?;YF7I)SyP(i?;!%pZEwa#MMV)`cm&!hM-lMdM?MDyPyVsD
zytk*00kYu5;YUkUo#$i{K<^e@1FE5C4mEKFkx${8SITy>=y9yn6BHB_2fA7r)kA;4
z&(c#;u&gD9O_p$PjR!y+eQ4p~;U^s-QRk(m-+FHa0v_0O;*USdd%NpqARy@1-XW|~
zLCNj>(Spz25Yep+#bdjF4T6gi(lxJy(-kr8a6(@2j=4}xdiymQdIEx?|aI65DcJHd?O3qWmg-72me-ZKoU^l
znp;fcuDFnQR0VmtMcb^c6mk>O_$O0Ui;I|N1eDE<62t?(Pz03805I+5dn^96^fR*q
z8;|b#9iq3E6zt^D+sc+OS^}LEYzK>cEPuO7*!-)gUoR*KfZAMuE8o
z?}pMHRDqBIrlg91hj;#7(%pZ_0a;?3a;jjK;1e^C7+f9U=G3=
zA5@$l|Fyj_f+d`9M^jA;n{8$MzSVaz;T#Tc?#cm^Q*UsB6O@M6lAs;p^
ztDGH1+T`R)mhNf+kj>Z7#X0nhXK^JmeyP^U@qz!>!NJk>pNW{1t$cS()IqfF?y~eE
zy)N!bm9{J$1gV13qzX%K(xg{W$`6ng>Ai_k6a=J5lcLn63rGd~`lgv!c`OY`r6CuF5A&L>I6rlpoGAp6zmGe6PfCVMF&u03e_Rn^hV7?(sYqCg^%Z8qS}
zvG@_c<#zf|vFmI>`}b~hK>`bzST!FGx+)CjfV%p?t-IH^e$up1)0U+WT{@Reg18~EdNR)6%KPNks@!W@|rDSeSCygVUGT&`Q+}3COo6OY2G@J
zxsYCCd$8ZMo0*O40)x4wUNGK3U<9%y74!dyMI^HtX!a=NG2*`YV0dB1Xt)n+>ihid
z->WXdaarW|yd<>2Yv0FSz`7XXu&!k*-kB32^Y`gBpM*fs(%24(`+@wgR$Dh6qh?(q
z5^s_j+->h#b%6Pge#0KOeBu&4isNfh{qFH%b)U-`Q*w1kOtgkHt@$%cc@St6^nX+I
zjM7yiVO-GV(GW96S7|-{NzTkrqtU9d%73?wYk;8fRa3k
z%IIfxukc{fX9ZJayDn(Yw
zbl)?W2QXW2`m?Bi67R~(y}2Rs@^@b2dwYjM?GYk*?--$F>vP|WB}@Zu^duRjE9SMD
z4ReH?1^jUoE2v!g=%mxr!%v4=``*2DE-cc<0kSFNDhb44q*KjPXoQ%=I1e$2}C4*i7
z8S6^{0>*uOMPI&YE;2^#8!+a`!6G!h>n#K?rqMyYYKP9QM}g?)(ZUA(C+2rzIadC5
zhGt{RG3Dju7z}wQJ_$3hzz@Df`BixH*^``sS2g{t4#xgd6@c5>?CwcO(A^*xYEd+5
zzyC$Rm-hTKc{n_g_hP@9OU8Y=&|eH+@S_R3k(i-xMt?nbC5{6;zPaAMJzSSy_)*De6;-%tzUUawnf#kelil7-7RjlLi{;+AKg83h@G-*QhT`;PolIVSk>gjM745$4D+
zRchQ~TsOQEr2;gCJvf89`TSmg%GEkF=q~C!)!&fThY*rm*i;V_*{7likjGw`fU7
zfrZ=)cSNcBkl(UVwE8gPKk8)Qs{h>7w6jTQ#PruzF5HL3LV1YeiaBVEhQU%M%lZ8t*^TcJb^7OFEOxUOhq?{VMJ!jI)f13fW3cW16fq~|K
z9%sipiy!}9slOS1yv@G-u-Wco=+3Pl4K5q0JIeVx3)kMitoCL^Nu6xj_+=(Bp=#gU
zxWZ~~Q=sPYS|jEjm(#
zb_zs}O{K^OS|bZe^lz|78qw6a$R+1$0iv+yUh(*7Z5z_Ix&I@a8#IEu7`=tFidm`HCQ@eS}phR7bEu9
z@bL3#`=_mWD~8RM2CB~-RI8es37=!09vQyDoi6fxt1!=Xf088pGila+&lkvn$H;}s
ztU@3;PA`TUX0DGc)pQW3;#F={nci7rPD;XK3L=y7?3X+NHUpua_I%2R?;P@MO^VjY
zJ%y_C|Bh|faO}i?dFT3LrLC~=df89TT$5KGD?jp&!>mh_HI)R7?~LVd{UJQ+fPel;
z{(8dEVxntb`DZkZP=&pVi~j}i!S44r!JItTm?S3SN^h)FZgTLiP{omS#)*&V9@bof
zJ