From 2e6cd726befcfdd482c60c457ad266800022bc28 Mon Sep 17 00:00:00 2001 From: oscar alvarez Date: Wed, 27 Jul 2022 16:34:13 -0500 Subject: [PATCH] Refactory housekeeping --- __init__.py | 15 +- booking.fodt | Bin 33247 -> 64566 bytes booking.py | 5 +- configuration.py | 8 +- folio.py | 37 ++-- housekeeping.fods | Bin 17135 -> 25207 bytes housekeeping.py | 117 ++--------- message.xml | 3 + room.py | 184 ++++++++++++++++-- room.xml | 145 ++++++++++++++ tryton.cfg | 3 +- view/configuration_form.xml | 4 - view/configuration_tree.xml | 1 - ...e_form.xml => room_cleaning_type_form.xml} | 2 + ...e_tree.xml => room_cleaning_type_tree.xml} | 1 + ...ng_form.xml => room_housekeeping_form.xml} | 24 +-- ...ng_tree.xml => room_housekeeping_tree.xml} | 5 +- 17 files changed, 389 insertions(+), 165 deletions(-) rename view/{housekeeping_cleaning_type_form.xml => room_cleaning_type_form.xml} (86%) rename view/{housekeeping_cleaning_type_tree.xml => room_cleaning_type_tree.xml} (90%) rename view/{housekeeping_form.xml => room_housekeeping_form.xml} (65%) rename view/{housekeeping_tree.xml => room_housekeeping_tree.xml} (83%) diff --git a/__init__.py b/__init__.py index 6c6ca22..383fb5c 100644 --- a/__init__.py +++ b/__init__.py @@ -6,7 +6,6 @@ from . import configuration from . import room from . import booking from . import folio -from . import housekeeping from . import company from . import city from . import party @@ -44,8 +43,8 @@ def register(): booking.BookingStatementLine, booking.StatementPaymentForm, statement.StatementLine, - housekeeping.Housekeeping, - housekeeping.HousekeepingCleaningType, + # housekeeping.Housekeeping, + # housekeeping.HousekeepingCleaningType, party.Party, channel.SaleChannel, channel.ChannelTax, @@ -69,14 +68,14 @@ def register(): service.ServiceLine, service.ServiceKind, service.CreateDailyServicesStart, - housekeeping.HotelHousekeepingTask, - housekeeping.HotelTask, - housekeeping.HousekeepingServiceStart, room.CleanningDays, + room.CleaningType, dash.DashApp, dash.AppHotelPlanner, invoice.InvoiceLine, invoice.Invoice, + room.HotelTask, + room.HousekeepingStart, # folio.TransferfolioStart, # folio.TransferChargeStart, # folio.CheckOutfolioFailed, @@ -96,7 +95,7 @@ def register(): sale.InvoiceIncomeDailyReport, sale.InvoiceSimplifiedReport, service.ServiceReport, - housekeeping.HousekeepingServiceReport, + room.HousekeepingReport, module='hotel', type_='report') Pool.register( booking.SelectRooms, @@ -111,7 +110,7 @@ def register(): folio.StatisticsByMonth, folio.ReverseCheckout, service.CreateDailyServices, - housekeeping.HousekeepingService, + room.Housekeeping, sale.InvoiceIncomeDaily, party.CreateGuest, # folio.ChangeRoom, diff --git a/booking.fodt b/booking.fodt index e99b5ec21dc1a7807b0e74bc188ed804c42e5933..2dd61b39caa6d1e0f0305a3490ff1a978b35ebe4 100644 GIT binary patch literal 64566 zcmb5V1#lg`(k6V&%p7CPd`vM@%*@Qp%*=Mo5HmAV%xoXqF;mRU%*?cT@3(ii{;j*; zU#pr?X{Pk3)vfNHR;xxq8Uhj%0DuJmg1}x?^afcFsQ>`LKlk5P09#92Qx{JMQ$q&_ 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 Vssb3{&uiGgXA-DDrJFyo{{=Wll4t+` literal 33247 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 diff --git a/booking.py b/booking.py index cd6008e..5436da6 100644 --- a/booking.py +++ b/booking.py @@ -49,7 +49,7 @@ class Booking(Workflow, ModelSQL, ModelView): party = fields.Many2One('party.party', 'Customer', required=False, select=True, help="Person or company owner of the booking.", states={ - 'required': Eval('state') == 'check_in', + # 'required': Eval('state') == 'check_in', 'readonly': Not(In(Eval('state'), ['offer', 'confirmed'])), }) contact = fields.Char('Contact', states=STATES_CHECKIN, @@ -420,6 +420,9 @@ class Booking(Workflow, ModelSQL, ModelView): return payment_mode = bk.channel.payment_mode + if not payment_mode: + raise UserError(gettext('hotel.msg_missing_payment_mode')) + party = bk.channel.agent.party account_id = Voucher.get_account('receipt', payment_mode) diff --git a/configuration.py b/configuration.py index c6dc541..d9e1dad 100644 --- a/configuration.py +++ b/configuration.py @@ -38,8 +38,6 @@ class Configuration(ModelSQL, ModelView): 'configuration', 'product', 'Default Charges') check_in_time = fields.Time('Check In Time', required=True) check_out_time = fields.Time('Check Out Time', required=True) - default_accommodation = fields.Many2One('product.product', - 'Default Accommodation') taxes_exception_rule = fields.Many2One('account.tax.rule', 'Taxes Exception Rule') default_channel_seller = fields.Many2One('hotel.channel', 'Default Channel') company = fields.Many2One('company.company', 'Company', required=True, @@ -54,11 +52,11 @@ class Configuration(ModelSQL, ModelView): ], 'Full Clean Time') full_clean_lapse = fields.Integer('Full Clean Lapse', help='In Days') age_children_policy = fields.Integer('Age Children Policy', help='In Days') - cleaning_check_out = fields.Many2One('hotel.housekeeping.cleaning_type', + cleaning_check_out = fields.Many2One('hotel.room.cleaning_type', 'Cleaning Check Out') - cleaning_check_in = fields.Many2One('hotel.housekeeping.cleaning_type', + cleaning_check_in = fields.Many2One('hotel.room.cleaning_type', 'Cleaning Check In') - cleaning_occupied = fields.Many2One('hotel.housekeeping.cleaning_type', + cleaning_occupied = fields.Many2One('hotel.room.cleaning_type', 'Cleaning Occupied') quarantine_rooms = fields.Numeric('Quarantine Rooms', digits=(2, 0), help='In days') booking_email_template = fields.Many2One('email.template', diff --git a/folio.py b/folio.py index 9ff53dd..2a2c5cb 100644 --- a/folio.py +++ b/folio.py @@ -219,23 +219,21 @@ class Folio(ModelSQL, ModelView): raise UserError(gettext('hotel.msg_missing_select_room')) rec.set_registration_number() rec.check_room() - cls.update_room(rec.room, 'dirty') + cls.update_room(rec, 'check_in') cls.write(records, {'registration_state': 'check_in'}) def check_room(self): - Housekeeping = Pool().get('hotel.housekeeping') - rooms = Housekeeping.search([ - ('room', '=', self.room.id) - ]) - if not rooms or rooms[0].state != 'clean': - raise UserError(gettext('hotel.msg_room_no_clean', s=self.room.name)) + if self.room.state != 'clean': + raise UserError( + gettext('hotel.msg_room_no_clean', s=self.room.name) + ) @classmethod @ModelView.button def check_out(cls, records): for record in records: cls.write([record], {'registration_state': 'check_out'}) - cls.update_room(record.room, 'dirty') + cls.update_room(record, 'check_out') @classmethod @ModelView.button @@ -257,14 +255,21 @@ class Folio(ModelSQL, ModelView): return 'pending' @classmethod - def update_room(cls, room, state): - Housekeeping = Pool().get('hotel.housekeeping') - hk_rooms = Housekeeping.search([ - ('room', '=', room.id), - ]) - for hk_room in hk_rooms: - hk_room.state = state - hk_room.save() + def update_room(cls, folio, status): + pool = Pool() + Configuration = pool.get('hotel.configuration') + config = Configuration.get_configuration() + cleaning_type_id = None + if status in 'check_in' and config.cleaning_occupied: + cleaning_type_id = config.cleaning_occupied.id + elif status in 'check_out' and config.cleaning_check_out: + cleaning_type_id = config.cleaning_check_out.id + + room = folio.room + room.state = 'dirty' + if cleaning_type_id: + room.cleaning_type = cleaning_type_id + room.save() def get_invoice_state(self, name=None): if self.invoice_line: diff --git a/housekeeping.fods b/housekeeping.fods index 686dfb8e0609a97707846d773bd44cc07094b015..c9ea7657413cdec9323b5bccb3fd6545333c0056 100644 GIT binary patch literal 25207 zcmb5U18`=|)-Rq+Y}?kvwrv|vY(BAVTNB&1Ik7phZA~W0o%g%nxqsYqPu1<(-PN^s zt+l$>uY1>$k}McFItU0f2*@$$yIQC%cN7B%2*^ME?<){HD?2lwr=uCb(b3k*1OT*h zuxE6$H)U`DxLCO`I5?Wwn>v`d+L_q{8C)El%>bq@mS$!^rT-7lzij?j!~Q!Hb+9+L zvT$|&FK#X@jOMlu0HB#O+J6JfIx%|Ht^sh7XU(Eh{ z_;(xmM|X|@do$brR=~g82>f4qJAl2FxtR-)!P(S&I(gbYmYVk zqQg3`pFK=L#%4l8F(GByaz@9~ z#n4f*$+NN6N=KAMaAzG{l1JO=Zcoc?m=;RU32!^wR7mZS^}wgtO**j5pZi%RRFXW3H(TyvR@Rd?DtK-r}jqZ-fQ3s`P}n5+?=<#lpxrsV=XK_bgELErW$#8Q38Xi}fC>FQhrOX+P zp3yEtCoy#|st>Q0%p5Dca4qT z@$9TkKK7xsUZ){%zElme4!^jaRCgPo%0iLK#dugFaZ%93{v;_qLZew53o`SJy}8w( zrzR-f!Kxad=lx9e**N{G-ljctSPwoqGrUAF=pew(7+$%P+~Rs|)EYBOq9Fe%z-P^> zr?^wKuXZ?3H+Z&xsh9wooOT?FOrs7C;w-$OLJecLnAS*JrJ<6gUip&)j&XJ6q7CYF z2)!SQz6b)T@QftQjR`=DQIj9iyThzwn{Q`M#4Cq<%Rt^eUS&Bxk4J`tqGyx8WLV1g4{LCFD?cY~8+X@#-h~-uT<&Jb)>?A8Mc4 zHYdG3CK5UMz`NG_+$e)g4&80n=Fle?Ee`V)QH~g`+R=P5v-GkKlu|TxZ(N-|>fQ3x zAjJ}6k%(|vC11o#4jFj5{HCpNH=K=sPBaD7_i=) zw2n6U)*zxt0xIgs{EN0KoP0*WePqS9L5mB&Qc098<)>)k8VO5#0_|#5cKgcOA8Trp z%%qk8ZkRBrDQTr>Oh?XNk@y{*yqm@D$VkTs(3WGuTzXEOvx|{3WDPMu{4-pPLV3)H z-=yUO;rRO*fkK0A^fu@^E2r+;gL_iTrdL}`E(Bpkw`BO>(wg5@7N`(wWS1nKec{{c zmg2x;l~f_6Lq+I~l&p~f$4c;c+fAM2E~H_RQH(YERH`AD&GiQ{$Mh5FsaxvDG{iQd zECyUe)CpfNdu1#XPCRU4*!DGq?_4ubnxcXFRroeZZeFr#h>$Im3&g2IkHb0@$*f|J zOYnh6S0KNo8#>Wp^3$pIvm#y1e1lDdU>1smNs68BwQ4onSRx1pVzTnmE{*Z9#1Y8i zBNeZFkWLLS>l6ep+;4Ao>#~2+k4GVb_I~50?XBI72rY_a<4uu^hX_1N4jH6IKY-ZrWA;iN2^Z3#Z_p!gkBU1_?Td_Bcch0W%3|wD=#oqW$BLItt=w4&p-D`dv7ID;DU| zq~4FFWpeXHFbvZg9(_{geOT#wWT6r90Y81Z2-7kU2Zs$g?V;TMaD7{L9V!z9{W19! z+{Xii7uRq!&Gf>X)GLSSCKd_(szA0xO{<(cNSea;Ag(BFgd8Uc0ycI8|6t}Ge*a5j zb{9o|w^Ym*>Vl_e*GF)N{AJ-?<{r_=q|$4LP~E$?^B0|ZNSI(hHZ)_MxhuW`Phr=G z>dNDfxmJC2wn59}hk0<#D&yKtvoPE#mLoW%H}HAgEKR`a0@4A670a(>o9Rr$PxC8X z^?P|y3qU9OA&;x&6_#kecY^Ki1*f6-;RPK*3h^x38B7;ubJvIEOns(z1Mg+tqFa}9 ztLEb!sHHp9E~||fa=PJ?zChtZZeR6ec*&%xX(Y5$mzd9cZp-gk!A~;=RK?2RlP^`k zD}>G$v6YiRIqI`_V;yd*D}7RHZJXdHrt^65`oj@2-LbdU>(|*cxFiAjmd;7Sz!fNQ z{p8V)fumByy5bkhqPcC6SI-QDvoOg0rGU(Z%^y$2-_`?)H}xrD)af_VPcZD_9cA&xB>gFM_z*-p*a7Wg|gwO&RsGyVEroR+^Rh@eqKU4$8 znuT_D-Dmi8Rna5){hlkRGfJ6YYb}_M_k?^MmyOHso{0dd-m%8kF&lH``wUGtegOge zK{t0>V)2oW4<23D?pOLf6(%Xed`L-L6PH1w^mr7Zcfq7_07TFNuQ^c?GIa2yLYDLk zeC2tvYH}~Lw*-C&7Nk;KuyR)J08|^&XA=>tx1)Q^(fKSH(fA-Ehv?7!j=oc7Wn`>J zbf0D$?BsRoD!O=t1|Et15vXhpvC_Rkf|Bsnx^Q=F{@(=0sj4l{)pclE3WwMp_1k&n z_=+-6V{-41C|pq-Sd}{mO9s`a4c9bqmyKO;qC1QqP^2mIKQ0*>U?420gXysgj1WxJ zP!QKx-QB$eW`7n7!O%C?G3Y%nW;@7)p?%_92fjcjUNWVzz)>7=E(cgMIi0gC#W)h! zp_+L7;8!^trX!gxXSld4Xr-1c1`Ohemhiq*gPP$%UDEKZA)EGFI^tG;(bFqu?{~0V zdxr!mH zZs8*>9y@?om~2**N`xn$^TwbE_+e6$xSyll#~0jHrs;qxwXA`!lz8-wUg70EC4`@a zAoNVh(ylBfz=kA#l(TJSAUkdOikgPZgdMA&^VPch2F-Xs${)B2oGrf{uJJ(qVbx2F zuRqPB;^Rl--R!ZjjpkDQd{Mn&40ReEvD>Quvph?iAy{#3Rce0_Bd!^?zzdJi60$Fc z3mxueWa7N#cT)UxoYDB&>tMJX$bYlvGknRk$LAipUodMGFlm zl_5QRQY7>npU#Z;ijvjU`|4Zs#l_IN@P0M;?4DpmX#XHeZ6n&wSVuiSOt+qi;q{||bj z>|d!Tlej_oRw5mkq++LaoxT~0DLB8*-ZEEdblSAGU^`WBfDGH_z$q4KfPs+0b$)At zYhaFs9zukqgC?Iq-G)0%3Fj#B@_c~5obm)#_Mv}f3W!%Mm_4`c92G{a6KV2*FUb`r& zMhZKHt9yKsxVBp6&pr!3&inqc`(6qHG5TRZK*|OGlkE=o*X}cMum}FPpLV5x;atRp z`Pru^>}g$Q?q}rFC!bVd>+Z#~c~)$bw7szre*Yi4w zlQrv#F~e3|D`(l!81+5<4`bp+8fz0Xa2&%CCmEyF9Ga_>wJ885H?wLc0ih=U+O}^d zrsZNwlc4P8M_XF0%`CcEk3rk&2ge}X(Vlx~+D`@_*VF*7K=x^=!fRI^U$X+seu(>M z#8p9Xc7ycVOsyi`Tm=jb+=Lkv4#SVn1jJXCTOJ5Qy9n0}BBLo}QVi4LX|vo22r}-VV+5Iq;D1gKx5-!t}NdM-3w=OZc?d8_->#Eu~?@&#-tga;g}X zLa-~!omckM{H`$dbUa2eTpM^NW+Xc438<;eb}So;kTERtOj^;-1XYMOOPVup1iT4!`F6bW;J0Tck$z2-l@FneS~WELoJo$`b5WoQTyoFE9eo z4WfJK@U>gAWE+tRlrYAniBQ~HQBky}T`7)S{RerQv8y(>HNWs=>~`51z8va2X_EJ+ zH_CH6u@;ln1}@qaJAmk^@)(Z<4o^<+6M9`c#oK*!2;9etI5M7x9sxx+GZk|X9~5m0 zdpYjRNG2!2;AWD$eBzHbh6col1By6OVkTFUrXHdi8QDXK=J8t;u$;@vNAFjt*D;w+sI+8|T}dOdlXU1<_aYXltwJU{e5|YvAwaQBHTM}9Qw&wU zz(d2;qDIi2=(oZpN@kWo*NBT)1$aSLtuviQ(eyc!d=lFRq04SpSxWWw&Ys|iI=S!y ztat=^S4}S@!vF}(Vnm`%L;ywBA^UITwr0_OY8IOh9<3G@XXPPW*y<_Q~7nu860EH@HjTfCMx)W zra$13?xgTmi=dKuJ~cK=P%j%j18VFzpU^pMwms+d2t3KQYroY27p-MO${e=A=k@Yl z!M1B*7{(XCCIFs#Xw42`%-DK;Y}Fu#ZG6~zzIH_m|iDUR2W+)$J!Ax6;?B9k*!)C652XS$N%_n#t-i-a!~rVF5T_|#;Z z%hK3%k~Xt}d;Q=0xkdQDacL(ZQZ9p@yzUo~Z(D?QknZA3`l8>S)$0;C#$gG3VEevl1bRfQ z%?3p`v~{LdENVchyGXDJf=3iT8+*-rx+21nD8YrJ<(Btc;1%hRH6L~_u&bMONR{DB z3#Ju~0qVXTq~M_{PB%GHeC6)G*K?(U0*F0c#;KLE!K3KT*X6`Yf-GUB@S>vT_-PHq zxiwppGE8WJ-Yi_AGqN2MiMfINmNT3tW2s0Dpug!Omww_sq>@%y=`HTvZgb;;BrmmZ z5PJ$@D?EeCJx=OWmQx0yX@EZ*(Vl~DQsL+acBShVSK`$)3r3c+nHinJ$-2$KF8bzm zeBv^V&4m&Fl12QUZ1^gIQ(;QmaDGCsy4q|R7D5aL2Y-2_;L&1t-+j~`U>}pzMcEHW z$^kZW27E58gdXOCLk%Y>j2C=dSNu*fI9ZvfQ~hiHOLU@(e{*YF_uXw521h3bhaxSo z2#l^AmFCeJV&tdmnO_d5;aiL7Hw{C+snBlfHt6Mi3H0(=IJvgKL!q^VkLG)7M6=6H zR5(T9kpM^D|hPnrkkpnxpMRp}1 z3F$qE;78vBB{(}?0+NKoG74f{DeT-XmmYG^2<*0W3R2P152B&f<#hNaKBT#SDO3q@ z3FBZSYVOO@Q0F&B-J3iNF*ZG`ey$&TqUP5FiBz;wplQD!4MpK4l#3NuF$R_id3%Ky z6byL=F@ywYFJ%d#mwYw{CJKI|ZgaL%yX+t8`Kfs7i$UCuKS8sUu4MQ1x9^v`~&?8Tze5J;oeI z+r$9u;w3}Vouk6EPhZ`NdB}7}Ke@up(u31&GMg$!oXmLrUNDI1ykf;H>glYZus{;TtpVV{l;B zi&fL-`dxk2)elIanjGp!T5MjDXH@NhWV`$UFX7d%_Sn$T-Fo$kmNC?fE@BM$lb{Z% ze|oYhUtPtp#P4CR0xb_)AWfnM%xBpdbxjtrM7%*y7sg(C>`2vNKu4mJ!2G!i^uG|J z_zK%JD56}ykBvDb-jQ2;e!HoBXp^IG6x|>7m7Hg>8bgMU@LAQ4-^ue};utV1GJbSY! zOQ7*pp7(Wenke?3e>lU&X=J$+%cz>zrM#@eaP51!SW8{0uuUXYbryANq;WR&b93RE zlQh!d9DSE`&kWki=-d%}E33GvH_7Y#%_|)_CEkhm{&9_p$CGmI2GzwVJOA`utLW)g ziNldWG807)B@iHQ}StewQ12Q++Ym<5_W3 z!La#$B>3o#N~rc44SB>E59>|iC@;RoXf;+SZORrIQ=XODVdt!bQwhWMo=T-3AAviW zDs)t5T`Bg>!Tbl&b6y_lZiiw~ad??=VD{-420B~b1#OIvP8tRmmWAH{+5*R3sEG+Q zn*~gPx6`pNS^CFwU;4#U8ojaZXHB`^+|6TH^)Wc|6)gvu-E3l~GwDnqX5(@*B*D2> z_u4vLFPF*DW4h!S`+eY_4i=CV<(L6I&R@6D9R{F@u`m&^UKdzj(F1-kk%oyR7iu1q z^U}NY?UJGQ)ZRr0x#*(z-nF_9LHzc}o=DBcLjkKj%xT&9d59NUKQ`x+9BHG7A9 zU(;{W$bW^kjW5I4KpsyNdbHHHTm{N!*@-}cYiJ!CPR5wO3-1g~3)VCEe0)$g;Eav% zd>A?A<6W{?hFEPF#HTurw`Pr@la$IYQCG{+2?wj8)21Ec;LUaqTb}YBVF1E<3UQtx zu;UzzoF;$tNx6LmjLy8 z|61yf+BWZbXrk=+*@?^ahppu7FnS$TrAJQ?dc4@2=|V#v z=^yDw&%4d#kD;f$ub$LxLut;{ygog{k9U>(<;ayzrQ&#Z!<#w*eSP1K-Vge|!mDg> zhNE&R@$3j2MP-!}Mfcc##UK04#r;7RK!wzeKWatlYrwUCzV!*fH^WU|{py zOjCBKf(D;gzxVF9p0?~j1<3t{o*h4q7|tK=gA40wXJF1ho<7pMHr@QbKQ5baH*~*y zJY6RPePw@r^;v_TUSEhZN5En;pz`SV_EkZp%o^I)!h)*y|MK#Ga`bd@QSUl)^?q^m z%)^Sb05_0SbSZ#ha{7~13>^uKZ?R!Tn+{D#Nf_dV}ti+!S@=~-0$u}537 zsF8|p)N(3NHfouUN$5HGCD?*wb$H(qi^8(`=a)=Mq1H!b zz5}iNL9$GI3RtFD|HAmqR?y@2m=wjJuuQdKzAY_|+wC_X7~fggwLKx&Ha-gZ9Ol{< z;LS>m$5^&pK=6E}sHzOXE#+M7{ja4UMFrNFd{J_MismC_RwM@T?3m&|Ks6^S)fvda zWZn?uZHH&%o^0RvZKGd@V(CLez5|i~)xqu`gtG^|pTpP6^zlBb}K<;UXeSy!QMC#n4U zUaq54EQ2j_qA8gVZc)24vBKRxz$wv0<8M%^ zz`(7fEAUTw+>W^#()&6Kq!ICqT7H+6L^}@M3=4;9*Up&H(_{mzHo**ve2jBWs8pgN zpuzn}Kgxv)sJyZ@W5j}Afe zw-m^QP|Q)~j+In##MySBU_-rE@LAA@C31-$Nj<5#Wq#ZJEP&d5>yf1g?i<601$|pG zeU$;T37_Mgc!u}7?0}@;<50}=fv)}Q6Q34=43ODkeL?->%ol%_@}?mD&595ICujbj zJf@2o5NKs@@jufzI=b$aTI?=RaLDZR>t&-pp*=?8GANe(xcmzN)AL(6$Kv;3Z6DI`I4vZ)R#XW+)!T+oblvSHi&A4QKA z2W@nXTEuuO1jbN=!+%nQXT-7GNW)At+F%TbnThk;6+lF*;{u_yb2nZ0MZ57d{5QJ@ z;be7I7zPzrOE6CSdh`&7ZgsUjBu*RkDweH}Ue9XjNDf;}LUJuJ-P0(}s&jtzJ;&Yj zR<60FH5hMxImoHfv%9&i$@e+6(a=LZMP{69v`$q!yupii!l#!9Jy@ z?Nhr4Lv;qmS%1&R0YU<4%c$WGwnC-}9|#Y3 z^3jl#VKgJ{Z(In7{Y0n+=#P@#0)oyV8>9>c6?C+QYG!YIR0Q5_)ezVvP#JT4xAiiE zgy3j#bKg9J)2R`8a(McM{Ucmhw$q-2jO`s$Lns;wMY1_)P3y zOr5>pf$46PklTc&6@igpTsO$_m;8g~G4rgIxg99{`7|iJfUJbWO zN1*{{gx3kNw(+tRJ3wp)h8VS54N677yAcTIVa_&Q=Vt>!T_3918gZgJPFg0&V|C$y z2}BPA!Sq3U>!xeB09~iVM4KK8z1WBFjqvRc8ryvtT=x%ZAauO!lFX5Hldh0055vViQYa<@v7N4VI-qKe(KDk0EYydf$zfIY*^VYd8vd!^JP^P-;Jx{(7B+exCA6-{hRP1tfQIA z?cb%A*|TapNwe0Y@^%N0_L@cZ@6~DpnY6l;w`f}P_kqoZfW8; z`7h>8O4#MUniLha(sM6(Qj9!czaP9UIU%g~FuD30%`908L@iv>nN)DF@#vdSR-hF% zT`P386fjh5xvgDtHBq8ri^^(jg-iOIdOchiQe^&p+IDe0!hX}f6|xFBJt} z({80}LU-%}JCG`1M98c;yEYQuV>MkZnAZ26QjznNsCn?W3Iz&!kb-+41p)+wlJZ}F z^M6&d1ph<_W#I$?`KSL=t)yn@YG-T@u(EYw1paHv;An3VsiYu@0E_!i)*eAxN=yX= z1a$mw_ksSKKAMo3IRKuSkSfX_@#NI^kPPRB{hN<+=W z%SlJd!$!^axABTIsDLu4qp_=lv*}<)ANXPvFVZV8R7C6Q}9``@d!(Ei>nDU z6Nz)tiSdev>p=+_5GY8q$^+meOfZ#*n1Evdw8xnv!AH0&tUtT}X@sI`Gy zR_g3Vb{M8kgw__UmadeRo}55)E+=nV7atBODM?9LH5pYg8D(uXS#c$K6-{*+Z7nTX zZ3{I$b5VOCS%9*PtF*kQvbwc|hPjrur-Y`jinh6{nYMz3sg$*eI>1xR4yff~Ch2CO z?dT=s?x|^EVPS6TV(IMZVQ1p*Z0qUiY3LYe?iLF44YLp6_Xy(D4b;*L1y}`1n}(>l zhl{($Xt*XQdZ%cZMO)b?+S?|(`2+*}0-ZgQ&0W$wyh9>A!qePyg8UK+d<&ujfjseE zis2sCLE-!%G2&5Sn$bxz5ozj4al&blx~UnGX_=Z~G3LQRu8}EL!CAnhV4KuX*VGKF z%w%9{jaF=ddv2jcTCqoItY%rRTUnEONvUN;6|lI$vbx@wf| z=f^r17YBNx2I})hTFZvJ8%GDj#z)e}=F=A^Lgy!QHx{DCM@vS>T4v^Ir{-IirVCfb zJJuE|mX}+%&x?*1qV_jhKTne{c6*10hK8q>#+OFM*VdM%2G`fdR##Vlt{tpw?a%IR zZR|~N?5|DjAFUmoY@Xk5-Mt*FjUQ~SoF0sw9Iri`PCQ($yxwkHU0v;8-Cx{Yoq^8fPk=GNs9@qd2C$eA_%FeZv=>ghK4!)>YYXpqo7+D-ZI^y5H6{6 z6JF85P(f!_)!bSh`6IG8D-|nK4W!qNg~V``R{cW<{Rd82SZwK)4LlKJ-(AQ`D@^*@ z@#M!1|H<}S-k$p?B+t#%ua3TxA1*&0dQbQ*X80G8l+Vx>;>|%Jq(g&>MTAufh-su~ z(aAAjlVBmgD;*kw5W@Z!eJkcCT?6eS)!2?n)6?9aDoo#DPU z*ub*UfgVQU6p}=Elvy*H4Eul>G(kqjXH3Je)UryvqLEpXg!p37=ih{%;aYmZqmkiy z)el&G0qs;2UklX(r+)N=Uc@KNcc@FGIDd$y$|9+E4~%zWq1fUhk=o3JVCMKp4CdR# z|CAF>`hw&%sgo**A0?5nS5g6vBqO;VkMZxwNI1s^a{=z`Z4%w_L1#QtGk7*4^PkoT z+E$4X{vZj_Ow~sb-rt^M!HiBh!j?;|4`7F9@5bgZjo_e=iX27?d@SRmHHm?;d}`Ab zgm}MzqI}@kr6o9l-2u@sdeuSs8bcHD#?&HhBaVw-XkVxl0UWKV(RqbNortJvg+Ho4 zBV5p2dLrcMBpx9|`al&9gq&`z*r^{P2aLWGjSx5B3{U7nS7ODsdBk={%yBR?rndnO zB^IJ&VJrnw5}wG0kyluJR=@IZMuN4~C_gE>qWXZ)Ej9X3>$I3csQPT*GNXhI<^ul| z$g#XG_0;erKwy)QZDO>6DtqknWirbR2}j9ERXI4`dYU5{(ej_YcZzJ7dX+ z9neCpml9-=+it}}35(m>BUi_r*1F@4*pna<`i%BE4I77bTxcs3ww&BJf+5X}EuiYq zV@H>ZDkKoOmDphAEDJntD;OoE{FF`d6Z6MWV~_yyl*AoWBhi&@5qTzeGCy&Ds#Zrz z^up|FM(0gvvx@u)8q^}w?H=*Iz?4Z-V%oCus|KC*ho&Zr8mfsAujU>{=q=VR#0l3$ zJ0M;~5E=yRXM4yp3{oMjWJ!v$bKWyB5mHoR2Y|=wfo-f^PIEelJh>j)!IU3;2}g^w zw8aLUX@mzw);6cVD{1hFCkTsLtS%lo*G$ z$ADT2HYtiM$n>nsy$^vcsp!Vwy|lEYZYA;i$Kyo2GJ$lcSB;vV%pP_ctCJgc+)*F) z@2%|KX|^PGt%aNId-;oT0X<1)Hc79NdW~EHu|DtRHWDdE-w;HixMPKzLd!`W71uu= zVC+tUsQ`8dNw=<~9NOtp?hPm&aAON)Um$kE#0G80GTPC-+fbtB3J=%MDwM<(B-$$L zs_L?u*2;Zl+J*oTlzLdQ>cfT4d;@@-QS8Ib zu?rk(+0B!Oo<&Ke3c1?bZhQrIgYez(AkY*7d z)k86gZ&U|e_E0XLNr=X?v!sznnzEEC(M8SWsa}kLRit`RhwxRL$o51WrgGe*08EeQ z=Ed-JL1^^C9a~YK=I}A3FYZ>f(aNHuG4vNi1;x;rl&B#aKn~Z5Chz(K@G($UR z-=pJV_ZeL0Cwm zvA7@D{Rtgo_7lZm!f}m;_$Asv2ZlyDe+pd?OJqz3KbBKzLquAKk)fo@9Ayd#l-sum zG!x5;AB6HLQ)niV&#;v1H=Ake#)o)X3M)`rMJ%9VA%rXSVwyprP8PuC*usaGZ+_27 zXfmHctxJpuX$ucXxjRfTP*yP@YvIf-=J$;$|Jhud40#*+JIYd#p2)74KDM*45IvHz z!nHglA>OCc9GQ(L0sLW=v^QmiGB?2_fw@yxe*m{4i}v!j%$y=gi^%-3JXqc{-I~%J zE)HC4nkDRRoyu4=I7O0ZPr(WYc-ODeLt#SZc2*Nu6-DjMC8mXOrXH5*{x@&A6!*~L znf~VMg&;Kuk&1XMv+Q8DIVrvDDeSb7RpBwd#%^<*Uuuzb8Ui6qoM@`WFlg$q$|0K} zp4ejVQQ4Bo3C?p;+vjPW59Qz{OW#ouRBePC`J{|EdkqW=UCq+=*qtl01D-QTc*znZ zf4wzxn$(Hd=!D;(-u+c7EIJI0i5kDVn|Z{2j2m921{ZCr8684ZHY8Z=BW@|LBmBt+ zbHqOUlsE*`2kN-JMww`otDF3P-?eCr#eiBV02ELBcB`_ivduI{&eR% zJ_?w-MY`09mT(&4PG&bNH#cTc6xNvn-T|bxmqb}2b`z{-JX&&N%C~WC?Nl+3>D)?H zWm}y$GIem%82h0hiP302TrelVH~!inT;BXL0md>g?qz-IYgmk;!|5nuE+qCYCs#fJ zY5UT|WaipE$YV;#v1`;d-&+K>1!&e-a^wTo0>cIGnsq5n-2U}Fb9mKVR8XmB>K=Hx zix#2YG!k4I=Y!z8-MifRbrfg43iqhUx?(UI3>J3{jrt(T5T(ffw{FQV1o_nb33*W9lViyrx%scy-Mp-;{z%^GS)U46%E- zjK~6EMnG9eMdjY!BM&nt!qoAr1yZywQK?eRUC?67vXEPCLO zg2KWG9*$+P(cjv3F|-4ITs4*Lbrcj3LMT^QzEOEdfybG{;@lwC(yCK1u%*#w9klW` zx9K(E5B~1rW8$iqb14;u+Mkp%ThaxK-Ze&ay`u$kOF#a!kaUqz5=R<+tSl!Ep*uG1 zA+*OW1?33OOk9&lkr35^b~s)lix5;W^S;EOTfkcsCdv_4L}?k^J>QmM@QSHJ;#NT6 zKzd?09Jkqp%sZOYr8@Y5AjZr7Sy8Yd-a^7r+b?Xwg;xn&+-<o*xYadmpl$(N4jX|=(;QsZJ%}$qZuf`#VR4`4BE6)%H7;dSTO0T30 zPQFREHpS4!v{UT*+#a#PUr1tGy^27-3H5l0v(1&ip$t`#+TUeZACgSs{pLwZp`vlq z+6%cu*ifC-u_kkqn$H*Ay$BC`@Vi(Rs>YL;j@J^_Pu&O$QznR1Cke7Od>{!;UX_x- z;gYk~k(?-tqO6+UNX!{Ih6*rs^OQ2dmc_NQ*O3(;FfaL*Air?6KqW4 zPE|(%)fpL-{W?Lr>#+i}3th9P?@`ovuEV9F_zN>IieQqkI=JqR^X;Di?(pVfx*|EFICVmJwE6uuM{?B>8}lq zE*hB%d`$y3b}K*#IG z`B(Os-V!pkd^5_*@Ry#}LW!2#>dxgj(fLTWTYS#3J$;ZfIwBTzR*z4`*5DP6Wrreh z+E;n^xmJum_{~MRNGIlq{B_O-n6;PQYh2m2Amf1~JrQs#qIyQ6%uT*lh zC`Pi1Pq>Qzv@^w!zc$t}@-pt`1?X_oJws`$%A26sP#`f`tc<6*j$Stsq>#gv=CCq; zb{>cTSYya+S~zyA*KX{QFV$dfvWn&irB;l+)(Bq-t1*TaP~eLuxj&rH$jCDgYv}}% z28tNIkLd_*H7;0Q=oZuUVgAI$M8A^fvfE=?R9PZ$n1Ls^(E@YAOerr@AenR|K$nDb z1-EFyY$=j-_=)S0Yes^$37@oJe8fAK1< zn0q`9)^YZ&f#c%H#5({ovkKJay|)N)G0N+gS%}<))QX59|H)m_!^H*ka9Q|}t9ZnE(FKgI;V-p&NC?joxzQ?s{cRMcul4BNh@ba%Eo z9=6=wdhYj1w%Z>FEG*pSgp!z=+QZfqI{F=WL14qCrFKXx2GSmy=qt%_^*J)X9r zeoR8)@FN}gnVKjrlIBIqSLqA+*>WaWprVjwVW7S;q6LZJCMPo0|G8l^zu3%KQ zR^@D}^e@KUFlvh|V6?n>cysaLZRwvobKCI8nmN`w<7}}AR%gZ@=R^JL+B69=Ez1)( zHk%}7doqz)%<1_zotB;Csv1Aan%fbb^VqA%xG!d@>T~^BBE215$xZCEoZsi0a+^#* z?tj1E_~_mZv|(TnnRS0XZ?rgk;XQYI_w0WRMn$#Y{DG<0zI!HUx2DH8e6Lj?!;6(D z#;ZVEr7^KI)zOYtB!MNWtunX>t|6=8uQaz9`Hs2RiHEKNXJHl% z^9=5KUDmKy!PAjwNBpRpT1-z5DvFXIy?iU;XfZ@;N(*XZ2{#^HlKkopT2#&*|*haWmFg#S6A& zG9AHIj32~S+&1QZr?)x0mW6j|PEx)SfVp7d3;lClY16p%N|cbo!e?Q&a-Hjp@!3S7 zRbiac1=zXvg7dB6J+2E`twciG(Q9$WXm8-%4sreNP^Ll*u;(%guVK>&w18FL`yz&O2 zNVQJ<-;}hDMy9BrHz;A5d$`Q=Pwh4wXcxFB$6l=+J34CJK0;=8xDKP_#v`RzFrg^fA zaL*di!z<_TvCUZat|8(M4sRr^{I1sk(fj%Pk@u$S6XyNvenZjA!oyPtNY6edtM8l%OKh(l~FQt6T0Z!6`0cCDHg;UhLV;eK;=zOnxdOAQgXc z=Sgu#-S*}D3%Q+J0(ad~Zz2vpA|{H@bD5oXTL@a$z)jHqvz>N6qZv~doN*zYu^Wfl$nPE*l)25qVYvv_jo0kwzFZ{8QM zANP3!Nbui_7kn`6_v@XcGQW}%jzb8EPqxkHvF#43Fm>w?2H+9ilp3WNFyE=nmsCkK zt>JM9@|6X5ykiIBKcLo0tck9FCcbZWhpX)UP}#3VzONzh zavPu8v-hw|*9B9pAm_@cvTu}@`@@vK%i-FdWyO(!yir}3x;*2QKk&fC+oN$|AZXIM z;H#BSt##%M9fVzKE(66O7umTVBJb7Y@{B=6jis4Go7;<{G#k9cJ~bJN7)bCTFhK0< zv;A%;)I^E$FpSGh#eC-v>B)b2@X$;mHG3NF4(~NOyLi)c`k9AZFW~63pB?N*?zi7~ zaE6Rlr(R|})=y5IOND4!E1mnzjin3n2j2m^H|&oH?}_49>4pK#tt>fa5w_@kSHh@C zQ6%oZ!>73>0e@0v8~fm-N3Um(gkKWZIZ~tv{r&^be$Wz7IkTNvtoVy%0sc-K5kH|F=0}o9TEH zBOcjY3u7=H?Lr4<$OvUd-OAStHa_p3c^Q<* zwmS~EkK|V`z)eL$y+ly+nX|knp$aVuhCI*zl@jg`3pE!7F_20N&;zp-h%3Xz19!unK70a zc-~Jf-lPfdkXehkMkaXf#o>qgKUzEMsHobu?E}&X41$0|Go+Lv-8l@BO1DT!cS%Ys z4$??>mvkveNem$p(%m&ONY^_)_v3@N-|e^F^{n@tfA*|(UdOesz4x4J&z|%6O%-gE zV=HIHZTamL8sUmgIlss7D=6#41Jup#If5n0*}e1HwkmP|^Ve_3>fQ}59$=Nk?F8yK zQ6)jA?$(xL*l$+x@2XGhczvkyDV3Z4W~A4N$M%5Ol0eV3fCiLcvr9#%8IJrdGD@LH9p ziSI>G8m|>D`B;=mM#MSsBPPFu%Qv@Twnpdfj0_hWU0q(h3}`#bXnmqPcjoXpfAF{| zrie%xAl&{!@M7$=#B2;7s_QZ6cP1AV{#ubA%xsbOiO-7 zI{ecGg;KhYwL$RnH^o~)!U0uF(=A3V9O)ONaMVcm_jymuE;8Dvrgakz$Tvy1x1W%$ zGDaW zSk9ZCzlkkly3({pc;$?G`ZqFo)5K6sMLl{oyZ3-}w|g&1xzSl4ZsUG3Zl)JH5V11A z>xyMC?Li%Ghcs~(h{Ic5hFmMg6Z?4eOpPMb%H}1Zt-N=47f)=jSg9^vkH&bWZ3`Ut zUS_Y44=BlhkFi{)n5y%-oN%RpFDHxQkC;m6S@c2DEy{0W#(hk+(~sX?)3WW|_lik?-aFW=aPnO6QTzzk5DL z<-R5ne(;=Gu{d}lU%Obx?%2K$Y~ofw@SHpKiB*@-V+S`y-#v>a!{b+rRHi}xc_3)D zz!cM0yZykO-g0jy=ZGpo-yA_}&s*GhYUp}z7aO}BF^zcLl&$-mC|r5UMiD8&C2`yl z)Z6uA1k5%j{XV*73HYjD(t}U$zNT+I(Py(Df7qlMYpY_pqa#SJ7hXA-_%tC{ z+wYcFgJr@aWFv>$(zof1b${o45A*rAL0^}*9_@`JcRGiMKGjrGMSL^;?rdGP<1(ak z$s9dEMl9{DY6rIvM;Eg>i$iU%G2wsp99BgGfdt6sTE2CA0NoC8%f>p}4qbppm1uzI z&r>Cvh_QrUgEv2nDZAN{kH&xMC#*FAm*k4)OKO&#_N2YpK3A`q){xuR6$}g!7=FnL z*h1s37>?Z7p9%XgiINi$|@Xd!a`AJ6eM@l=3=4NIuTbXFuA(sP_>p(e}K=1j` z!*IE~Rm$B#s$t8na7N*@IJvSGbUi@V`(B0R{+93d!xZyX2sXCjZZGqAWAy_`xxkwtU&L?fol$IZV85)cq@L z$mRFYC8}G>b9%6itD2A$NoAr-eyE9#QjVkE5QFX~`1==HB$3Y~$(9PQFSo3F=Do&{_eP|R>yfQ6+D{?Qxyc^{osuZ8F5Fs{ z+}_@0(6P%GguI351v9ABO42e{+5jL7!@~e|Zz@Z|$T&B&p2?f0xk?h6Lg|%3K zU{Y$Pt+gb|s)*`fdk1b<6wl+OV$1?|DO+F~SBVoa#E8vk;G5T@Pn}b2PvE6KVduew z0t4)VIAi1;tODAP<~g)YOyk0aNOGb9OC$t1m0Y7y0bg}_7D?(Hh66_67x4iI2RuHG z`j7on0$fH9{FdH_OwlE;=Ej#9wfMG+c0wbe`vh~^nTcuC9f{W+6h98CP+0{ma z9gbq}!0?Xf%uG(`)tiH?t*rx_W()&*6K2MRTd0X5gJFBFC{BWtDMfenqaBDwD;z!7 z$0}_Hd$o+Dt{_kaTkEQdDv(J5Sho~(p^7@RIn6VhdTd-}BWR^l z(%aM1gAvJwVwG8*u8Yz@IAf?hraHYCt3;-06av-YT|d*Ry>K5bYGMJ!Dd^R|u3?2t zC63+I^B3{#f5C$g@JIh}cK^E<8shNjNRr++jLFLLv0Lh~TFp0W*sV|_1v5(6-hp@7 z3_Akf)ADl?nX*q?b`Y! zi6$ZDgWi*a%K&`Aec&xpc3U)qoyH5{x- zw`G$K{3bqzc*{VdxS^zcZxYf3FwC>23fln+5(YJ(AhmO0X%rH3dwE8l2sv!V!A zY9=vEQ&T0J)Il6!pL~5v)j>22klc$?U8 zz#YRTwjBVA??%Y;@5inW5^vINOyCh7tUD^wQ+NT<#796PPO1GyL{U+0*sfGTKx)hE z3=8l$ZBAGsUznnY>7X+P=?CiqEMm*zX3b=mB$_(e(2p>_d!;t^TYx9)gWB;D&C^># z=;U{t7@#6UYfbA`h2TRdXJa~So-Gu(X>4QX8lIM@$#_Zi*zDLO=gap5d9$y6Me5v- zG=;8WA$GASjMltF`hgiyP;*NSdQ(p|OFHzdD9TGm&1}AHE;S1G^qMy~mDmziBdcUt z5oHfXA)rY8Ft;J;;l_ukM*H|(21*ZB;?19HD9f2P0L)WcR+e`yE{@f{k%iWM;Rs5Q zRu+^+o_|DF*Tu~@;?O?sKqKKNB-k`)L)}v6(uS>Mn4u3IL(wLjT16`R-CgI_M#xQD z*Ye0}SNG?R_LaEo3R_`WAp|^M%5D5^Fh~TSrPWW<2j3M z%};$A>;u8rV#;&%b=4JnWw!`1cS;0wQ<655Kw=2U)<$wiGZf>!3%?YdP})B>@l==1<3UIg33oWD~&*+fd^qx@bV zfO(!>0cNZqN44rS$h$gEV#)}*vZ}v$mP5C2KXHRS=hB~YP6rk_ z;4`?S6pbK`3-)@TQZbj8Mep>^#Sg#tnDX!=u%nbbtMY`tm#Eip=<=?5k%SpSBfOj1 z?((T?MI%dqWboPiE`}6~zOpWU0$>t*P0QKQnL<@QXES1Xnc zkyZJ$G73P!O@~ApvbHzni(o3%6D_h(hj-Yc$E$Yug@&nE!JYhd4xDuvLMEQY_P$cj z4$k$(Jr}r%BZs`;Cv2{$8M|eFmL4xQEAO7x3_vS}Fb~tOvYLr=f#XXcgGN;8_3v`SuoNzY?Oy9+i^A(JX z0M!5p9a|;~&SF-MJ1)G4q*=?~Q=2D}^X^kG?|r~ods?XHGn~98h5L$H3A}vhYl|mO zlpgP8cZVOB(|m0$VZbDR#hiW3aCsl~DN!#}$cUtOD=hs~EGV)?u=@EZtRa|g6sHiw zh$O0MT34T6E{f>6eg8t68PuASgtK_xe$t6f`q)v_q`}E|*6SoA8>f(Rg4jLUr;2I! zO-2+$thyK(zn`PMXp=3C+WVu~>ZH=Mar*>TEu-Z@aX;Sl|dS0IEEcci^liJyd#oeF-Bo`LVas zW_KKJbtBU$SI4TurH7#0N^&$eAAB|s+WZlqWQ~yXWj{4AVF4`1VIG2|+bUj!58O$N z=Ehxn+LL#Xxg1fK@G*4)aus~;FwqzbZ3cALwiggcp}+Pmuo?aoMcG`B*-I}&)RsIP z`*A8y^U7ybU=pCt7Qug1Z0ddPezljb(yPms$pfT!9OO3}W?}IVxY*~yTRD@hC#lxI zSAXP)U6+t)>(`NYFop=oeNPn8)Th_o=3~z}Rc+p5r7u-`ZdMV=I)v+DBA8OS5->I$ zP>UA%QX51EdJvCb%>6d1cC&U&e-eC!7r9W(ms7HUWpCqkAQC9n>>v89!(cWAiw=*Vn)&rz63(*SNTwnKsK#z(_0Yd2^Ztbvfo1 z+E$lpGkMkJ%JIP3w|a(MoR?C1deJP;tOw4@rLfIlL$%`Si$u@ZaNirzg=%g|l*NWI zDs(%vb3`-hGH2qTO)?@bPGC2GLVlq3i{xu^R9Yb~>s zOjU}S6Gealf`|OkZM6J4|rR$XQr@$;jE7Q-aNiprX&zkuQj(CF>zJ z#;}_;*QDFW@;s09hN`MOb6?`Ow+r$$shX*9S4>8YM^9^q+y_tYhV7nY53vKgBFb33 zgRlf^F%bm4v&3Y*s7}5UnEExL1+@|ClAM9LB|YRlm;LE8m4vt11X?~R&LOWC#xO5n z`3rDugw53E6yKs$su2Yy4sV;m$Y~Iu0`UQgfy``*y!jDDb|}F=Xffy(L3S3?a=MoZ z5hupwcFK7pzU}1+1`Kr~Dg1dPWJ_6+R?6-?%3t3wvIt?qONM;3;x%-DZo07esnin# zw%h;6ra@aQL1nh~c9DkX)Zr|JyCY1@cQAfX2L&M~38ISy)E=On(rWQug|?a5OrHo{ z4dTUDVZhXr!w%%&%XP<9Q-_tw`xW4)k&cC~+57C5uj3+SLKQo5+sS5CeLOSpXRZ(^ zZuc`*%ZqzV8z{Xe8!k4hg}yl>9!(gGCT!R;<=xhQot5VdK-cpolM>GOw2+%Sl2IAE zSvjqUzQT~&qNDJzIU|Y@tJ~q>Ksf_ON^12D+*xVWlw##BclI-G@tBwB2@Lqc7-p=z zvJEW6k0E0YPdZuMjaS@y4PuoII{~vP$V>cozCYe$7u@L9)GpRA6-+D~yL1Ako8n`i zlid6n1c;}LFQAZpGojg$9P3o7=x4JQFC?B2J7u548|Li`5nDx%pthJm_I zgfXUb=u>8!3beo7!&5^nm~Sw;>#2DtY55egSlz|62n|9bBVAJE*_XXxuam8BrYjG^w zs1`!alynP7$@VSN1NIRd28)bI5vaR^==5b)T4YzrhBqqyI8*}`| zTdFN!V#(+6^BQ3o!HYHpjyLK>8diEiaWzwzFDS1*VZM;*^#aPQC~6-jv+6O2>oUj4 z_L}nPfn^Sny)3XZQ2SonJY1-Zj9&T7B58`lbde}Bno;}uMN?r29$Lg`eOirOv zuw9ur|00TRz45{cT$+?euo^sR$JtmUrY$$nE{-~@9m1nhCjy^$%|YIknuu~c_}!;A z4_;FQ_75g5cLO)HQ&*X(tkO~g@U%fN((E%jz8jY1Leb%i$a`6;919D~`=vNaVK=st z-nmG+!ni}>fDG51hVi`$p)Py5Lsn?Dk&!iYMq;wJdTc!BWPv;e_poh4M*zugWQ4ke zJ#rC``#PB*gzh^KSiVkT?$c3y_<^-Anqq~|ucvYu>gL&F(OWT2Tfm-(k0vk1s>S#H z`)!?xVGnii$EQ zNXTo1S>7ZII1>sX5WDl3b`QTaVs~I<98WYc^EpWFRc1WrxiJXT6l?qHg=6L0=HAiG zRQ)`sg~0`S1i;WeiETMj#kfn(eHw-LOn?0uJadz@$M`!(n)tVnqj}kN{_xK+blDx@ z*^D5a*uAhhY~w|p-93!vXjRg(?^KoKouZ+9;c7$WM~-hwC7x|Pspaxdp;rh{Omo5x zmfcD7APtsf%4A#UQRB?K!>w~KJVJKfHButc<|*~$0b=(hufFOwHHqGwC3Kl-Bzs(X zz1KQLMf7g!>m2;`OAk^5sAXCQy&w#u`ZX3FWp>mh7L{PP5y^#!-eD2_sbKA>m!Phw zOoeR9B>f3mDdiUz8aLBbG+7eSoQ>M!d%z=HU0G@kHQ z03e(>%^C*yI{z7$(X-CCHNs~v?kpO1#7G8cjA}=0xxv~T01b8`i?~dlbA=*)Y4=UHoI}G zNZv?hePpU9Ci8d1m5U<=)}v5v*Gz=a`VqfUx3pCmz(5QCyt$^Dd5m?_X(c<%%cjSt zM~p`q#gp8Di>hrg^z=Jz9SWqU^DNpglh0O>#)x2qv(8_VgUm?6WKFb7ObmWIsCDte z2hH>brj8I^@M!iKDoY8@5(Ab_f2=|;E#0tSAFcMC*BV$DE*Q&G7Ou1nA5#(IqS{dJ?V!VWbB8^x+!RdW4^7pM*g|z{#6r=<_U9|S!XtnTl8dX!i zZeE-N=Q2+Mz*z!4^g*BcG4ReCh#=KY&w68E-)Zd?II~Zr`JuiMvN%ugjW2SkvW=Nx zH^KdFeD4Hb7&NnC2Fg@;EjJyqv=>{o7k};xbSjv2pn7>{{yg3BmN8Uh__KWESF6uB z_qy>58lowTn)Z35JQ(QQ=^LVDYkImU0PX-wWd^MUdv(2F<;W1o9+OC@^+eu3srax*zeOk(>Cz| zD~|P*@sh+Crl@d~DEbK@-p<83hPxMF@q7?(wbBRA)TW8H0ix%h^CkaG_h-Wb!_Pwc ztAFE{Qj4^7{9^{P58^*f5C6v*$X)xlkK{*<|EF30`wXN#<=<|VKWY5;8Aub%UriuC z8sYzOmj5~f*;|6_qL=Quxq_K@d zUKz~w9}F~-f?FD^WYRl}SL@wOA+(oB`erehN0EOH`PYOsM2 zbf<ZR`T z7Bv-|KZFIiyNhzm*tz7r@JL?2aYh#zQw};_uFH!aN-09FN96)%>0_ymCZA@}`a^nI zjnj^gUt{LN0h|UZKD(a4$PTDwE~50^#OJpWq>JqpX0aQGu#0R1Na6H$7sc$Z(@}8S zc=wn39O@}H`aEKecfKtJCFA8Suv3bE*&Wf1b7YVN;*YDMlo4>=uuMzKmpZj{$?<%kULFF3x{%4gR0P^ejh}`^rUw%cv|5@jU z_47K8k(mNbOdjN3|9;GV1P`=&ja);qx)Z!{QnFsMjCpNe}eEYw)*d*ekDBqZ~|Y4J$M_Wc}GQ`0?(40CBJiCIA2c literal 17135 zcmc(`WndghvMwrSmMqC)v=}UAW?5h{Gcz;GVrFJ$u$Y;dSr#)h_LcXX*_quld)~dj zUQ}0gR&~c$l@XN@nHiC?lAvH{KtNDHK>TrrvH=$Cp|n6iK)?5oOF)*UmWB?lHio)3 zHWsG(x(=q+R&-8Q2DH|?_NMl<);5M#2G;tHmWEaiwDvZ3hPnp!CWeL%vj4z@f`a-7 z<_F9_3HGC;Z*Ar9o597>;tbc^K9BACun;s3*~5v_5_NplSe$|V`u+DTsO;&}bspyu5?6VNcTJGykzG_S7EuF(yvR_X^3rkuAzp&1G zAkZB!GF$i%>WJ6+c_w=BSxvO{q!=gNsV42wW9ybJp0Nv}F6FQgAVTZnnSKFZ_4}k{ z5rr=%7#r#h-8^YryX(s?>O?0Nczbqu$|_HRN* z6NZVW@C9E61d|6kDO#}MRr!D(=9?T%wJo8sgqQ38~#2Afy}DRQX^eUcLAx7gBF$; znM*GXo?!(3VwRXhy{oOZru-bTzvsG-QNHsPmO&^A;j~>y!6kvn1d(qB$%7fzJ>x3F z^v3Rn#~yYH7DWD0tN(?Cic|!o)56ki(7Xb4YBY)+X)~Q9a(N3#vis;`*KiDdz4*6r zTuDq0DEF&#Fqv1*F-Ymif|kl{L-E@y#E|5lXH+T_%1PKQyrRI{UCHf z&mw@9gW~6K5c&$XiHS8%7ufr5Vx`IhfOfie!Di`CvxgIid!w_P5!iFIhVX< z^yaG(-e@b|Mv?dKpcdXJu5Zq9ga})CR7bHPveO|K-KgsCo~j3lMD&sd@mao^ecL$%(rSc60$j=!)SaIMAh3W;#QI|%U zb&=PG#ne>PFGTe*p3^D9BjDc1??dY zF&$pOUnXW3TSNlN&JP!_O32N$;};J~&wYQ3Z+90#bY@LNDUF;wFoUjHH*lLT$f`xW zjmd%3XIwgsfXJy$PMB~?ivQMT{5dtToEK@L3kB4;9#zFMi0h&mFB{xt#tgWP#EvmX zdf+qIm4aVC6Euo1VQw_9)N7VPx36L$iHcXJ`D@heDDmKGgQbAr<&SSP!r>rcUCchX zIV2pQ<;9%XNqGComkANLppTEQz_bR2mx{#@^||kv7+KK=({aD}z3FYax`hjKpm|Gn zMHk%-6@n3f=MG2<2SN3kGV#8cf3jJZq(?sd5n+*R(chhV#^OFSY}^QLRu(?kJIqDO zTX+AhH;_|(>>~Fpw~;7Tt+H=w1pKEFu&eb1!nc@;uLzAIE3Z$d)>5136nf;vv7&x< z%6xeT^6ufWdx1*_EX)aQ6;1vaO#-E|f$bvZtTcldc*XH`D$y_KI&JH{F*dn8l)2et z@p5zgh6(ux)&td(8@y`dMhdl^Nxl?vZ1hU!O?Y&b>*_k=8 zS9&#d91u{>kunp2*5DGHT9{8{PI=%KI%+I5^t!WK8p?MKsnx2+J(yoC7FbXd`(=%L z?iqlUVxDimSO~&JWGT(MW8CIQP=Q-kl+u^^yd`5uBkUX6fkIqQm+)t(>K9HvLqGEt zp!!YC7vw!SL@Ec!l}z2!iQtwg*Gd5D=N_au7n9nBi)d~<8?j6%wV`JWRkkEvqehP7_Om7Tzs5{y0SRM7Pq<82iG%kn!P%od|kv_w^ zspZYxp!gK<#3{Fqs(Y_#C-=6nsk+0a#nO2X^tu$3l7W{0^G&gZs+O?8@1-*+Yb?VFk#aQ1nv_VUvA zMRki3kgVyHQo;8+(gw=7f(ex~>@vcWz2FCXQqtby`X{WB??%_v?UZtvRLbP0OZ@XL z>0ZwTn2BMZl9{QV6Yp-{0#OpQ=AUgRkPr@ZPxENEadFXQ0`<$JgnM+%J>ay$) zTN3HpH7BO`aQ<<)+r!CA4RzpRha3f&$--X+c@KsjES~s5tUh0d3>H^}uRhOVyvn{h zvCOh#F}P`|#q-XgObFt0eRA6+GGe zP!#5ZQS2huR_o0Ch^m}fOUi3<>#3U)LepSFcz;vbfT!YS7Dfg=WzjpSY=U95(y`K$ zB`@{7a6zNRDq>a-Vv!x8pyv6u?g`N(jUWDSecIglHWho!LA2_lD4eCdG9%esr^Qyg{_#!8qfiYyF1EolOyGeOhHF5g1mLby z$~wT@7KH(%(iJlA_t=(QyfaD3ROtQkGAVhHbR$m9{EKa0U4jWQ@XeC#(TMm2y7v*Q z3)M#O2}r7U%5l;?Ys%Yq4N#G6ZF)g9onigN;~~i@KXQJII)(DB0LcM%2q?1f%IIQ89NSY5qwd4C?0fxpNbSvF;%1%*Hn4VmFe>IgG%?HuYnR z8^HN-{;u2Njid^Lh4ikMc>F6x2E9;GXhq)=huor75Brof@9JE(B(5Y9C*(SYu@~># zCq4*&4-)T6DIfTFqHOF!3~yJ@DSiWe;9Nic_wAq957CdGQgZnNjFB_I_|?LZ>fe<% zHCH{4xt`HlWDLJ?#hu+9EpZd36C7y^$jsGDD)pT^rOd)x3mj9#FC|@GnF;q;x&(3g zN8hJ3H&Aq{ajo3%GgJ%^pn`Co!)6KNe?jx@V|>ly4XE;7GeX#LTdGd7RldZ8-!@;_ z2rqCMZb&_#5|BtM{;s0#6bMm5u0%~k&*JMU-aTc_71IQbzz!uX0uDuq%`f7Yh_6rEQJ9a)xmop0thTM9i<`i1R)pcoDYDIOA%IZSj+B1U}Zy8EjrSL`Z2 zTAtKEFy?oR7`;fOQ9byPIE^wPBFKct`EnixpflSZfbXS*-1|X4%xo%f;Fn7zTYOmY z+(g_Z>vkjpl5O{Z4dEr%FW^G7J-j&2g9w0h#?)^Ju)_qYR*ewU_W(aQSqp=g0%r3Q_U-lT_d1Q**|&r!VAl~(5gvY*L!`-9B4u5SwX z-do$-UvHlIqkqUeXyaFUcXqtn**{EPyD{P@7qjj_vmV}7^UF1bz`G{U)2hZNGpHj% z4xZ%nlm+#AmQA944SL&Sg?`OO)jC105b-sn)#uv?APR5NTq>^ z-aoSNm9y1He7}ezeUV>r>p+nmCmD@kfXl}=6RUE*`N@WrR8aJ>suvjS`1sZM7r{f)Jfka%#Wk$pC*5)Q)SsZ#el+ z4Xm`*Oq0i9FPV^Jmd_dqB?#Oi;#Iot4%er>(W4Bl8wN~$XrMy&%g!}4M3m92yr$o6 zgq#@6m-!gFBs3F}bkEldMHVavMT0g{cwM3U|Z4+!bP;@?eZjSbVPea{A?_p489LTwYP3=iv zCBAXpkbWcd0%iOZoBpuP%9eL8cwtmql(c$OxQAH*ZYYboRVFA(bXi%~{+`kzN8Qh= zbX2f&C@y%My3rG{f!F-VD=P^Jl^z}|lZglf^l1PH=syqZVLpcS_71KVhW5Wl^?PdT zcB@UFIxgf*k|(4Y>48>MD43|3chgTW{q`29frV%w8E<2D{>p1*j; z;`xB}X@?{llC?TAgg|>7{NnU}B(Ac)K;c-{%S27wP}!KP|H1~ZA~y3l@VpwexuU#q zcI>=J9V+JY77Z@!C$D?3ow@A+(qnpVjB_v*{A1?(<(x4&S#wq{*g*%BN8*-3*t6zm zZFu#DK`ywXhA zpsYQcq9=Q=wr{FwsV>(|$iyu)l?tX!5G8GT#Z|IvdOkP}!#@KgTvC2<;L@gFtL9Ox zVh`)fLm*SlRDavDv+zjLl{Uc0^-^SHhKHYRyfW!+tii1&@sC-MLaa6^M?m*ov!Ej@ ziAYimWRi0)Kh=~z3x=PHf-2;=_y*^uIh>ra%OVcGPkm!PW&A4%i8F67x_uiidvYp}A`~ zPs~H((Q!Dt;?=M+2_y9)Ya=qc z_rdJ>e;Ft^0b|uwk0FTD%2GCJY*@62#kP;`#;$!*5W)`Q@AC+qY2y1@x23@hR$U2= zP`>dxZw9+kotsxDe*lyJ$#jekdtKgi4%eE;;clb?r{7tW341QE&M~d>g130-md(>q z(@MIOTY?xxQMy?PmZ>BYCAKs|56+G-BqUvyn^`tWI**u~Ey(}Eb5l06^|5MW> ztA^DK7+v*z-Y*_i#?oab{lc31rV20X;CcnPCCC&>9mi@$7+1K4?!pc(4Y6K#4#XDW zhk^7@DI7OcWo8>@97g4xT(H?&;(2&0O*ZK5#@`ut3q^TO1_zt0Q={wQe*s7}4_V z{`p+JBMpI#&R2d+cUlq*DkZn1`I`0rQF{V<(@r{MQqdt#=nuEIJ4xg$)PZ zV$OLBz|s}yXC%H$6prfn@XrT^BK!ENsUq!T6L>*o;Fe7dC^&r6v_`TFVEFT`2Xgmi z{#1zRrsm=Rb2cY@TQ4>TRC`6;jg6J@YW!s0PlJ>{gZbjY)UrS@OoQ1;DHf8`zoQ`V zIg!L$vwSC90?JLTn9n|T9<^E0MX~OS0GC&Klsy=ezLuV?Io`8>Nw425aR_=xAb$Gt z#^w7}fcxRwOaM|cTfKd<%r3XQ(0QF*Bx86!qb{jLw)A}@!#j*dhq9YKxJri` zc1Jyfs(@FFvqlx8F1+Eyj-RUQ9OrNW2adkRi0YHAAN*)^ey77=+^f(`meIKkh2#Pb zb}8YoZjg;N_Ed= zynx&zZJa#sE8*FXug*t}+l&SE(BtowIneQjIwuHHL<20CT`<$t_nwI^N{Ge%B6kX- zx2JaO?P4gSb=IZg?)x-_qkX4(I%%e(GRe`h2We(d2%`9DwzU8jxcggOylgnC2H6CQR8rE-Q6Fn@AWZubnjW=RxS25BlTLY5OYO-oRFWrV7m7!cOaV`k>WkXyA zG$VWAsts28s;?n07!9^ICmtJ_B9km!^dd<%jd4=G^K=R~(X99}$C1}F)~A>^=Wtl8 zS>=;i(vrWak$(Hd%dvu|WULf$13yp@Ie&I`RzGW1u2!39t~N{{xXPP8`>lXD-Rp6( zli<}vj$4vy^d&fiRZ{-UPFFrmlYBIbHhmek8cY+X@d5kjgwhU`O3 z*#+jPB z{R$hJ*QR#NmLpj|iyjLqqnv4X>B!{ETgq%dsTq##^Fl06jP@ng?wXGWI`RF>QfLXcH84)z5e3p{w> zdS!ICPz`^!sZpcfT+N<+^k0HPR}S9<&_V8KnIjx5-~|ln$llCc@-Vr)jiaKVe4S9vYA}M!GG@TIE5b(&iBo z+8r5Dd^e8P2C?cb8G>*P*7&*!S@9_})QQOhHh0;h>KG#_U_0mX0Pk`V*>(%1r8QTl z2@t)_9IIvF7~DhOX6szH>n9GeJA#Zqr#-_2vOfJ2F`s`!{`M{w{S9Fb^idfev#4B> z9VPZXuiZH197mft>VZ(ZP|)goU?w>-P#TZOc4mvs;9Xbo2w`XGubNZWk&oYf%7=@{33 zwApHS<1W<#qz2r;iPWzn<1a|m}F=JrVSt&6ap0+uy@c;s{Eaf2eZVY#fqU6tM0ighWxX%a$h*B zBAG$+>VT3`A@RPNEctaMILdwz7-Rn-;FbzEW$p6O5pw#mKk}1e|I1p$B^fdbV+ZLC zB+eev4CjLQF56EiLe@2st_yik8(?Q~M;KsposapLnuHWEP&@I;z8L|<`1lPg3@>X> zTk5vYOSEo6T;JbNeJ_-GXdD+VpHXb>N#&76pxq>lOrNo@kgwCFR6D&vg0?RQ#@z^X z2=r#F9BlGqz*SOhI}Eyx-nn)qIZzk5u}8YLpD<|+Q35=sqoEZcXqnLS?ZL$E^;Ty3 zmP4Dj>ZRPL(m@kLf~@3!VKHdP`Jo?AoLY& z4tF{G`oMpQb09aR<~6ombB>NlZeRCdBLZ^A!Yis)QLKe#n`stNj^)RDI*(h#TMjZp z^HGcCy^30sH# z8iWD5PZqXGnkHXtY#~$dE?G9hSiGii*Dm<#csXnF)5D_jFSwY7u^D;dxsaFrXJ@-$ zi^))9Tc!C4z-{@)_ya;{wyN;Nrb6bMa##^BO|ExQRGewpp0i@Yj5+m!xc)VrbpWEu z93YWLtuOtSa8r2}Kz`B+NHB{%Jh(W#3Bq@t380a(fD3QfmhO&l*`vMHyMSu3Y z%_bi8L8MW|E#l*GiIVl@ZsV6;*i)BB_tnz5XT>`&F1N0U)A_la%FUA%-c9S<0Rw_f z3@4dIsjA>`Bf-yU&$SYib{7~U1`hH}OjOC?R&Q4lXLs?kw`mb%>|VwgR-P2{pQGS5 z7kDrr$G1l;*C)D*omm$`2{F}V*1fo&$1FoQkIFV&nmkf(J-*_tql9!~B6`kKU=sBl z-8*_|!}mH#X;)FK(SFGb1u+{r=6?_rRo7em*_7^lzyxnSQ^!Q_(KX4i{e6y+1nUol?Iuqi4tDBgY;Yu^bP1Ulclm!D^Bqow*&)KowgOhl#RTdOE0c5;Cc@GisiRlk{} zTV{z3vyhI4!EA0B(TRNuJP0#9DEtiI@1T9;&3iz&B4TpM^vcF?HBzUiPp;UBDz&}z z42>Kmkr9*ga8)R5#ql~D5mXgo?b8zP+%<3sZX0qo{JF}c zswNL4kpyL3G+w05n~m5D?jcK*dMnF{rKih@8YnkS4Kw97U#o{~$+)j#=tp05+4_Ff z-Z`NS{9A{XdXUwTz(7D0pnvG_kAwqB*>jM6Odz1&`^N`J!Nk#0&q~+S!k*6Ik0Py& zm2rryv?x3b*6)c1cyTcyxsPwa$9@F$fe5switGgh1o9^PO+lE9ij9_@frXBeiIs$f zm6MT2l2?d|Q{pQ-zZjdaJd3<3yQ%|^u9px8sURD@mlJVwBkz4s^a8|BAlx7 zv?{7!r44!1jMz=psr5C#I;c~d88ewVaJ%Tz*_kstJ8=jKii=1oev?&JloVEwl~Gbu z6jd=3)UcD+G}m$x7S(fB)iYBzaxhjF*HcqA)>C&iRW&s=(YJ84wly-fb+xxNcCxp2 zadF|&_a}2*W%gVZF%6WoiIlX9k+<|yvkO#oO;B;qF>nsj_lkA$@Usk-bn)Tyj+3D9 z*Ywc47i=GtXdGH#5L9OsQ|1tv=Nwn!mR2tmuqGG2 zt`WTw{KN_>RfW*SbGv>MIY$I8f(vx?ZF)6Zt}y!zA%8T zJcheEg0mr!Coq6NGVPmBhJ17we|)l7K)CS_fA82}y~H5r$XuE5BE`5InXF2M%r>pE zME-(2iJUg|x>Cv7I+>pxibXwI9Rtc8GrA-B{Ns(9%XMOVEnnafu5djeiA+f2kp+2!OVe#?t!6`-l88z`~`GNVZ z$+@M8#f`ULjltbTU4LM0B0t%vT5bQIfU z(?zKtUAqok>)j)i=iD95`}5pr!NRzT?lJqbv=dk;^N}P ztMkF#`d)?sR%2NgeSh#Z8UIGR`Bkt29c$oK>8B=0*EdF^s3nOIpN7kPMW4@h@72q* zR=Plz=sqTe#z?%KrR91w0n(zOjbeJX%f$Wtdr`ZJe#GXD3gwibz5VKuyQ)B04;k0n z_0(|(Kof0|pZm0Hlz><`UC=VFO=?_VO~&)O1Py%hP6MOGcX>^IyiYvA*e@M^DL(0+wT)_r!C zt9{Q910>jb(Ya7f-WX*nQ__ZAK`P;@j!uxgzbo$TD_R2?DYC0-eCdB2&1bzC8CEo$ z327U-4(iwox%L-bu!=E4;nks}Jf+`fQ6{iP-1!C$EB5ntU#+F*6dXmB|K?L9pDQG0 zARQaWTtdw|zAxi;5B;l2jScwCjd>WZ^3c1?rA+*BmiWrx%cd&6)-v!WK*wt=>gg-* zey6~b<{kKh6&4UN=R)2T`UX@Kwv0rF6cMEk2igWyqesl!1GXPSMo}8bJY;Yx#!p3`23PI_R7z?sm&){N>a)1s< zz^*=4=A!J;vZawz%p<3f;O9vGLPQqg8M7t|W(2~7@(Tc=B{nK^KcLLD@kFmdaAL=v zXD1LuVt^fbZ5i>7Bw)!7TmYUE@J9GfbdwewJK&}lq0uKgM1(a>QLYK9p_Xe<6v+lO zQ0F{Kg9CNq5aC`M%*ZXob9|&A2Aj4jd>TlDUa8#)d6gyT7wH(bwW^}%z|=%vzqe|# zyVZrHHB}2SeV>jq$_2VHE{fS*E)N5+fEJPnk>}Bq_ft&?<_>NX&s&8bU~mlXj58tG zP_mO`79`LkKp;xV+X8uSS-!*Kr{IirWF1PODb+s+7{`yJ+Yq+xyHI!xlO>6-(A9tC zM*8%KwSN7%+w|hIxqvNbckw;`jODS2jc&zAlpA>AyxbuR8GE z6F1Thq<Hx;%RQ=jBx12+Y6tDA4y^6a{AyV{Cy9LTXs`atJWQudndxcZr=8c6aJxAlA-Vld zYvYE(e0Zng>Gi@{_<-Pnfj4&t+13I`AO@IxKtj>>t8i#G&B^wwZtj#Q(vQHYCdFPZ zC|B?y?^GMsiVeg&`~@B$ty%J$2AGV&+H3X-jUr2;cWIM3)e|3$D)C-FoaRF-`dUd* zB#!>*(D*AR6uYL?pf7Nxt^|eNQ;u}yjTAHfFeXfbgz#MWu}@of?cV|TX4AJp_2*v+ z2w$u%Hu8={@02AA9r>mKTd=pAb^Loly)PJg{!uEkaDqY!#RdoMeH7%6eEYtq>on1u zLTEktf~9Xip)4F#(xQ&xr24caELKti_9Jvzf(8gh{X>arL_Ee-!LSZ$#@5ZOBaA0A z7dAj6IK=^)VAs?d$`mzEI5m||DmOJ^Vr8bI(?dL_&h|IUkIzY-Y*qk4*#<_jFsvL? z#_b3HTu@stf4#%Nag0U)hbkc?L1*+^={^1SCK;J!Z&>~KhUSsDoBZYIo%{LW*Y_5@ceJRl!G#owbj@IQ&L3;0uKC;gjtljsN`!ejnJBA95GR`*~5g;tvIS8t5(@W_BCxhUrhOir)(W2nbbVfVgXd1_T9k=xxsRNlx6ow2 z$$Tf2=fNLKSkC}nZvKwff>Yor zgGpq3aL#$CuYfel0kd7ya2eZ zT)t!6=>NAxl?lW5e)m1Y|L28&IIur{?NrfO`aBM(tjx})Da+30JESBh$1z)mhfoI9 znQ6`gj~v?cGd^XE->d`n)b9o5Q(2^OZ1~J-tN8?kcD4p5aOjQ@6>pt07G-h8t1zGx zuRI~-r8)e3Zn#NKel?!RD?k6q=s>aqM7x8@NeSfqr8`dv`w7XiF#VyC=Pg;hYJzt zPXGd>P0gj@+IdUhc{_O?s|Eu z3mulmi1FS+0p2;KWwOWCnz2`^*5eA}QNWtGWRkjZ@_bJLUaAHK8p~TNPet`vN@`ut zi(?!{1xEhhCTdgq(-Xx(XZfA=Wx)`>_|@>)G4#kCs4nfLvUFDBTM!5#NjE8C);EAI zDc-I?5(juwqD=ogD8FKhB<{=(A~>9X$fB7tY9>)u=o_SBM@bEUPbCEaT#!b9fq!&W z^zq*l&lp&tltX$gK;;zQ(7`r@W@Yr~!EwOX$eU&td=9$~U)i}MaCTvU1aT!l{=s&< z8xB{WBt+bkdE?Q?W?fbxEQ%%^ehIWwUvF2KUX>IV`&3qD{!9O4p<><)?aRDH#rKKJ zYDICSCu{{OVY>%7KHz38Wtpx|+c`F3Q^hA(g8(h`#@w^zvSxKVt19go*Mo!53D1Ta z`u*ogFURRBbg!cp>y3vVztq%#$;qb!?KS0_Rd8n5tX8Y(Hf?Gb zSANH_chHeB*mF%e0~fx(8*a&_c1Klr)&L0Q^tSehR&M8~i9Jx{6!ubYLz*VTUl|1}&WV_<$~Z6j_fl)W zq~J%LY4D*a!FQekQE+ef_=c|@6Yw%`&xrPStKK(H&Gl|?uWE0v__Pa~kE<6Q#f#p~ zS5Z8?#;sn`XRjx5ciNtoQg^dAUMvr#-cO6#w8fQP&nvFcw^Wmpqb|VL-do0tnhzS| z+Xo$X>o+@RSv&XpOwMoe(lb4%+cYt;}EbFgY?OX>=`n@A* z%~5r0XDM0k1zv|ZyS%VZ57h0<1LcR>-EmKltypzb3>VM8F4#7u+#jg5QJj6CU+WnF zJG_85=I67{_tywIzW2?O1Kwsa?;UT-SKf3^<20{{2C_`)Oh9LAgAvtk=YFa8<1pR9 zyoIM(_p3JlyLZ}yz*6W(&4a#d42SD(JAx-+hVWS!Jx@xG+NE>+9 zdS3|#LAYOXe-fd*Nnhq-M&0gwtXcKZWLR`mV{(D+ZKak|y2Jmp^Xg6&bUGJ8nVcnX z>RsK+%hS~AK9nWW-RW~3V8Anr;uyj1`+-U5GGM3njqd#k71sJ=z{&Z;`}!FhV{rmt zH^9chwOaPzf?LWN$hU>!^O10IH4h|AJ zK-V@%n>jnOezr|F8rX!GUyPJpjCnjPB&68xku3Ax>Q!pFoSp@|)Ai-}TX!vvB0huE z0(RW=H-1tyyn{D)YwZHE<7{(GgI@9Rj~z*=fxiM8JztzWEzj`ZeIlnuyQ$vp)o$fH z2uFn3?L=w;{*l(^;|rVZuh&YJw;9Y|fC-1VOL_ zIcU$B9VzBC8)~rg=U1kOPH2vhZw4zNFTBg|)5YXFXqeU%&_)&E5w-6*t70h(NUhlW zQ;y^;S@CIOOi$)ssrPR(BQAVK1FJGj$@NaHHzWk77e7n@wpUH^YHh zI!;H=yq?cDytJjcdA1Va(su^$vb#Mcv4_9>uiT{CyKO6(T)H3osf+hePXKRdZ{BNb z^O~4NW;)@8q z{E$^^zxeA`<>*%FYJl&hU`B;`C~JCB7w~`T;7^!F8Z5Rhp7bp6Qj!D{iYMa=kMJ21 zGoU6C$wF!43qc8u2quS_l;Zh%T~iz{58FjVyghgctbYiVMNI$MD1~DS8vPNIJOAr# zG;s|TI}E;AjEUWp4@@^fP7xFOctoOXSbwRAETcYs0Z({7KO25nEcFj4drha1EFMDdX7}gD-kwH^jJt1~a+*FET-ZdWA>M)|p*vi6s2|J{h+` zvbgIQBQ78Q&C@NqN4KD9vV-8bXU3(XR$BA7#(4J(78!F$AQp-0Rh3pn`qe|HviJ6A}y8}m`|hM6aO-BXqtIEOS4?x(y_%1`N8Y^6PPAp*Fo|ak z0P^kc8Rso+Z`vHs2lCT^=Fye+G&efriF=1Z{Da&QP52D_TWJo=G*s-A*SxY))^=G( zr&#dT)Nh(UkH3`!%_O41V5fdN3dm(TQIu*ic;lI6dhD#ES_Krf0%SG;QPRx-`~yJW zl5!5&qm{!PKoW5AuH8a#4SjoIu!Ud~dx!AF(o<9wmh0XXXj0yyM}}}pd&F1~ut{0s ztY{}HA$BZXIS4cfes7IBC6BOh7_sEK$17Vs?X_fk;@t@u5;tYj2DCN|tdts@ReOoB zgle5rF-LD|NY1#n713eqSHH?3hAlkPuoQTa-TMW&CZP`Y%&$J7J}!KGkvYj6hSb^iwbFLEa!@lE`7yRmH4Nk57BCF-)rQQR2PHsBbRwEO<1L_su zNKcU?;uDVD{k{DS$mIwuZ`t0mbQ)Zul{Qc;SfWEh) zMX3P;o6UU#Kdp6)KA?a-Es5po8MwQ!w4@2D%O~j(vB+=kp$b(u03{Lkp`JXdUjn-+ zZeA-)4$%E^WTV#D#bIR**=AXz2=~2W0mfxq9dl!=P^Qac1$exwnQUV7yuO(tjGT{H zM|@z5YZ|!VA#4u7G3G(aE^wECI2eADJx=uW!V&4V;cyv`YBt8Dag;Ap$AB>U-B)x5 zWC2l8C+Y@tW;>sBt2oQb_^bjCQD(ZD(;%9}y1t15=oRqkpGySZ=A3C;{~dYyx&_Oe}ooK26+I#)`Skt6;d z#2TZ4iCG10QG9(zj@Vm7D+Y0T>7EL}x(-LRjtfb{mtqG25mg zPg5r%wXJVjPVuM>vCy5eJR zm0zmeG_FGA4DfsRv$?O*kxPF5PZGcD8kOhWNEB6)|e|20K#D-OoqH$l3 z3Cu&M+0||(ZS(tAC-?1(xs{x%w9J>z&rJaFz4rqKZ@}Qt6B|$b%IFm5_W|LN#$>r8 zLcF{ABHH9vH^X05umx@R&UQab!$o#@9?c}S5;(ta3$H9IFGdR>LJMnCF`P>((lP zpHg!#P9(FB+)5xIabanpN&y|e|H`oZBR2B;mp=&WqabK)Wn^mXX!nn0nDz{G_71uZ zj`n)Gc69%l?{`e)-}#IztaTj>|6jR27I`}Uzu(Kj+S=lO=fe4$C$zD%Hnuag|Np4l z-^t|n{cLot3@!d!CV#gGmF#cssH?AUXkqvvT5CHxeMdXH|6ZU9`jPYs`8&1<1oHdv zLH}9QfA=^x);5kdza{s-s0jZ9_1{%wYN=~%Xiq0#>R_pBWB!wJC!1g zn~`;CXSz5;VYS8G3QYPGq$6S`^+!}3t+dSrs~js!4OIB4xL0QW1zD6W&Q_G{+KB-) ztZ){SKXb`lQg66q+K9U6*=)t&2I?ZApz$IEOz(C*u-GTIp^cQkJDg-kyFL(bhplsz zWY@yzHpsOHH4w!3@WilaVw`Q;NYEh67YGus?JHsf^QK;sHz&}Ec{{IX){@tta=|g-{!V3H};?g2?|CHlL47nm+%Bq(DDd2%U zpud5kPF0ay8a>9%?-mFR0umZAIE%d5v&N9DvQ(ia6?f-z$3x&}*Poou4IKQz1G<76 zhg2m%1@aK9fgX4~$Ii8@l`I*2d4ykha7*nFcbF~25QZ{>zu2MS3T2WwxqyIv+oeA#g8hG5o4-1ee^t_-eE$`m|MR^6Z*cx} zEdRGCFMosbr=$75Mfu9{KkM|TeWv{)gN8*P8y-CjV<& xD)<2Vr}_PGV}DfV4;lT{ko>mUf6^}3f3V=PlHd@(|Azdr*?ia^Q=Z>v{|7gs(8T}% diff --git a/housekeeping.py b/housekeeping.py index 6f71fca..7890637 100644 --- a/housekeeping.py +++ b/housekeeping.py @@ -11,11 +11,16 @@ from trytond.pool import Pool STATES = {'invisible': (Eval('type') != 'service')} -class HousekeepingCleaningType(ModelSQL, ModelView): - "Housekeeping Cleaning Type" +class RoomCleaningType(ModelSQL, ModelView): + "Room Cleaning Type" __name__ = "hotel.housekeeping.cleaning_type" name = fields.Char('Name', required=True, select=True) description = fields.Text('Description') + kind = fields.Selection([ + ('tweak', 'Tweak'), + ('deep', 'Deep'), + ('standard', 'Standard'), + ], 'Kind', required=True) class Housekeeping(Workflow, ModelSQL, ModelView): @@ -24,17 +29,17 @@ class Housekeeping(Workflow, ModelSQL, ModelView): employee = fields.Many2One('company.employee', 'Employee') room = fields.Many2One('hotel.room', 'Room', required=True) state = fields.Selection([ - ('inspected', 'Inspected'), - ('dirty', 'Dirty'), - ('clean', 'Clean'), - ('maintenance', 'Maintenance'), - ], 'Status', required=True, readonly=True) + ('inspected', 'Inspected'), + ('dirty', 'Dirty'), + ('clean', 'Clean'), + ('maintenance', 'Maintenance'), + ], 'Status', required=True, readonly=True) state_string = state.translated('state') availability = fields.Selection([ - ('blocked', 'Blocked'), - ('available', 'Available'), - ('occupied', 'Occupied'), - ], 'Availability', required=True) + ('blocked', 'Blocked'), + ('available', 'Available'), + ('occupied', 'Occupied'), + ], 'Availability', required=True) cleaning_type = fields.Many2One('hotel.housekeeping.cleaning_type', 'Cleaning Type', required=False) availability_string = state.translated('availability') @@ -44,8 +49,10 @@ class Housekeeping(Workflow, ModelSQL, ModelView): start_date_assigned = fields.Date('Start Date Assigned') end_date_assigned = fields.Date('End Date Assigned') notes = fields.Text('Notes') - check_in_time = fields.Function(fields.Time('Check In Time'), 'get_check_in_time') - check_out_time = fields.Function(fields.Time('Check In Time'), 'get_check_out_time') + check_in_time = fields.Function(fields.Time('Check In Time'), + 'get_check_in_time') + check_out_time = fields.Function(fields.Time('Check In Time'), + 'get_check_out_time') amenities = fields.Function(fields.Many2Many('hotel.room-hotel.amenities', 'room', 'amenities', 'Amenities'), 'get_amenities') @@ -165,87 +172,3 @@ class Housekeeping(Workflow, ModelSQL, ModelView): # for line in lines: # occupancies.add(line.id) # return list(occupancies) - - -class HotelTask(ModelSQL, ModelView): - "Hotel Task" - __name__ = "hotel.task" - name = fields.Char('Name Task', required=True, select=True) - frecuency = fields.Integer('Frecuency', select=True, help='In days') - quantity = fields.Integer('Quantity', select=True) - - -class HotelHousekeepingTask(ModelView, ModelSQL): - 'Hotel Housekeeping Task' - __name__ = 'hotel.housekeeping.task' - housekeeping = fields.Many2One('hotel.housekeeping', 'Hotel Housekeeping', - ondelete='CASCADE', select=True, required=True) - task = fields.Many2One('hotel.task', 'Task', select=True, required=True) - frecuency = fields.Integer('Frecuency', select=True, help='In days') - quantity = fields.Integer('Quantity', select=True) - - @fields.depends('task', 'frecuency') - def on_change_task(self, name=None): - if self.task: - self.frecuency = self.task.frecuency - - -class HousekeepingServiceStart(ModelView): - 'Print Housekeeping Service Start' - __name__ = 'hotel.print_housekeeping_service.start' - date = fields.Date('Date', required=True) - employee = fields.Many2One('company.employee', 'Employee') - company = fields.Many2One('company.company', 'Company', required=True) - - @staticmethod - def default_date(): - Date_ = Pool().get('ir.date') - return Date_.today() - - @staticmethod - def default_company(): - return Transaction().context.get('company') - - -class HousekeepingService(Wizard): - 'Housekeeping Service' - __name__ = 'hotel.print_housekeeping_service' - start = StateView('hotel.print_housekeeping_service.start', - 'hotel.print_housekeeping_service_start_view_form', [ - Button('Cancel', 'end', 'tryton-cancel'), - Button('Open', 'print_', 'tryton-print', default=True), - ]) - print_ = StateReport('hotel.print_housekeeping_service.report') - - def do_print_(self, action): - company = self.start.company - data = { - 'date': self.start.date, - 'employee': self.start.employee.id if self.start.employee else None, - 'company': company.id, - } - return action, data - - def transition_print_(self): - return 'end' - - -class HousekeepingServiceReport(Report): - __name__ = 'hotel.print_housekeeping_service.report' - - @classmethod - def get_context(cls, records, header, data): - report_context = super().get_context(records, header, data) - pool = Pool() - Company = pool.get('company.company') - Housekeeping = pool.get('hotel.housekeeping') - - dom = [] - if data['employee']: - dom.append(('employee.id', '=', data['employee'])) - - housekeepings = Housekeeping.search(dom) - report_context['records'] = housekeepings - report_context['company'] = Company(data['company']).party.name - report_context['date'] = datetime.now() - return report_context diff --git a/message.xml b/message.xml index ac92270..36d5cd6 100644 --- a/message.xml +++ b/message.xml @@ -81,5 +81,8 @@ this repository contains the full copyright notices and license terms. --> Missing party or customer to pay! + + Missing payment mode in channel! + diff --git a/room.py b/room.py index 604d03f..7cf8061 100644 --- a/room.py +++ b/room.py @@ -1,13 +1,27 @@ #This file is part of Presik. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelView, ModelSQL, Workflow, fields from trytond.pyson import Eval +from trytond.wizard import ( + Wizard, StateView, Button, StateTransition, StateReport +) +from trytond.pool import Pool +from trytond.report import Report -STATES = {'readonly': (Eval('state') != 'draft')} +class CleaningType(ModelSQL, ModelView): + "Room Cleaning Type" + __name__ = "hotel.room.cleaning_type" + name = fields.Char('Name', required=True, select=True) + description = fields.Text('Description') + kind = fields.Selection([ + ('tweak', 'Tweak'), + ('deep', 'Deep'), + ('standard', 'Standard'), + ], 'Kind', required=True) -class Room(ModelSQL, ModelView): +class Room(Workflow, ModelSQL, ModelView): 'Room' __name__ = 'hotel.room' name = fields.Char('Name', required=True) @@ -33,19 +47,87 @@ class Room(ModelSQL, ModelView): # TODO: Maybe add require a Current State field min_unit_price = fields.Numeric('Min. Unit Price', digits=(16, 4)) max_unit_price = fields.Numeric('Max. Unit Price', digits=(16, 4)) + state = fields.Selection([ + ('inspected', 'Inspected'), + ('dirty', 'Dirty'), + ('clean', 'Clean'), + ('maintenance', 'Maintenance'), + ], 'Status', required=True, readonly=True) + state_string = state.translated('state') + cleaning_type = fields.Many2One('hotel.room.cleaning_type', + 'Cleaning Type', required=False) + last_check_in = fields.DateTime('Last Check In') + last_check_out = fields.DateTime('Last Check Out') + housekeeping = fields.Many2One('company.employee', 'Employee') + notes = fields.Text('Notes') @classmethod def __setup__(cls): super(Room, cls).__setup__() + cls._transitions |= set(( + ('clean', 'dirty'), + ('clean', 'inspected'), + ('clean', 'maintenance'), + ('dirty', 'clean'), + ('dirty', 'maintenance'), + ('dirty', 'inspected'), + ('maintenance', 'inspected'), + ('maintenance', 'dirty'), + ('inspected', 'dirty'), + ('inspected', 'maintenance'), + ('inspected', 'clean'), + )) + cls._buttons.update({ + 'clean': { + 'invisible': Eval('state').in_(['maintenance', 'clean']), + }, + 'dirty': { + 'invisible': Eval('state').in_(['dirty']), + }, + 'inspected': { + 'invisible': Eval('state').in_(['inspected']), + }, + 'maintenance': { + 'invisible': Eval('state').in_(['maintenance']), + }, + }) @staticmethod def default_active(): return True - @fields.depends('start_mnt', 'end_mnt') - def on_change_start_mnt(self): - if not self.start_mnt: - self.end_mnt = None + @staticmethod + def default_state(): + return 'dirty' + + @classmethod + @ModelView.button + @Workflow.transition('clean') + def clean(cls, records): + for rec in records: + rec.cleaning_type = None + rec.save() + + @classmethod + @ModelView.button + @Workflow.transition('dirty') + def dirty(cls, records): + Config = Pool().get('hotel.configuration') + config = Config.get_configuration() + for rec in records: + rec.cleaning_type = config.cleaning_occupied.id + + @classmethod + @ModelView.button + @Workflow.transition('maintenance') + def maintenance(cls, records): + pass + + @classmethod + @ModelView.button + @Workflow.transition('inspected') + def inspected(cls, records): + pass class RoomAmenities(ModelSQL): @@ -74,10 +156,6 @@ class Amenities(ModelSQL, ModelView): 'invisible': Eval('type') != 'lingerie', }, depends=['type']) - @classmethod - def __setup__(cls): - super(Amenities, cls).__setup__() - class RoomClassification(ModelSQL, ModelView): 'Room Classification' @@ -109,3 +187,87 @@ class RoomTemplate(ModelSQL): ondelete='CASCADE') template = fields.Many2One('product.template', 'Product Template', required=True, ondelete='CASCADE') + + +class HousekeepingStart(ModelView): + 'Print Housekeeping Service Start' + __name__ = 'hotel.print_housekeeping.start' + date = fields.Date('Date', required=True) + employee = fields.Many2One('company.employee', 'Employee') + company = fields.Many2One('company.company', 'Company', required=True) + + @staticmethod + def default_date(): + Date_ = Pool().get('ir.date') + return Date_.today() + + @staticmethod + def default_company(): + return Transaction().context.get('company') + + +class Housekeeping(Wizard): + 'Housekeeping Service' + __name__ = 'hotel.print_housekeeping' + start = StateView('hotel.print_housekeeping.start', + 'hotel.print_housekeeping_start_view_form', [ + Button('Cancel', 'end', 'tryton-cancel'), + Button('Open', 'print_', 'tryton-print', default=True), + ]) + print_ = StateReport('hotel.print_housekeeping.report') + + def do_print_(self, action): + company = self.start.company + data = { + 'date': self.start.date, + 'employee': self.start.employee.id if self.start.employee else None, + 'company': company.id, + } + return action, data + + def transition_print_(self): + return 'end' + + +class HousekeepingReport(Report): + __name__ = 'hotel.print_housekeeping.report' + + @classmethod + def get_context(cls, records, header, data): + report_context = super().get_context(records, header, data) + pool = Pool() + Company = pool.get('company.company') + Housekeeping = pool.get('hotel.housekeeping') + + dom = [] + if data['employee']: + dom.append(('employee.id', '=', data['employee'])) + + housekeepings = Housekeeping.search(dom) + report_context['records'] = housekeepings + report_context['company'] = Company(data['company']) + report_context['date'] = datetime.now() + return report_context + + +class HotelTask(ModelSQL, ModelView): + "Hotel Task" + __name__ = "hotel.task" + name = fields.Char('Name Task', required=True, select=True) + frecuency = fields.Integer('Frecuency', select=True, help='In days') + quantity = fields.Integer('Quantity', select=True) + + +# class HotelHousekeepingTask(ModelView, ModelSQL): +# 'Hotel Housekeeping Task' +# __name__ = 'hotel.housekeeping.task' +# room = fields.Many2One('hotel.room', 'Hotel Housekeeping', +# ondelete='CASCADE', select=True, required=True) +# task = fields.Many2One('hotel.task', 'Task', select=True, required=True) +# frecuency = fields.Integer('Frecuency', select=True, help='In days') +# quantity = fields.Integer('Quantity', select=True) +# +# @fields.depends('task', 'frecuency') +# def on_change_task(self, name=None): +# if self.task: +# self.frecuency = self.task.frecuency diff --git a/room.xml b/room.xml index 8560176..0980d2c 100644 --- a/room.xml +++ b/room.xml @@ -193,5 +193,150 @@ this repository contains the full copyright notices and license terms. --> + + + hotel.room + form + room_housekeeping_form + + + hotel.room + tree + room_housekeeping_tree + + + Housekeeping + hotel.room + + + + + + + + + + + + + + + + + + hotel.room.cleaning_type + form + room_cleaning_type_form + + + hotel.room.cleaning_type + tree + room_cleaning_type_tree + + + Cleaning Type + hotel.room.cleaning_type + + + + + + + + + + + + + + + + + hotel.task + form + task_form + + + hotel.task + tree + task_tree + + + Tasks Housekeeping + hotel.task + + + + + + + + + + + + + + + Housekeeping Report + + hotel.print_housekeeping.report + hotel/housekeeping.fods + + + hotel.print_housekeeping.start + form + housekeeping_start_form + + + Housekeeping Report + hotel.print_housekeeping + + + diff --git a/tryton.cfg b/tryton.cfg index 71a5189..f7cb1c7 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.24 +version=6.0.25 depends: party company @@ -23,7 +23,6 @@ xml: location.xml booking.xml folio.xml - housekeeping.xml company.xml city.xml party.xml diff --git a/view/configuration_form.xml b/view/configuration_form.xml index e4990ff..400dbf2 100644 --- a/view/configuration_form.xml +++ b/view/configuration_form.xml @@ -10,8 +10,6 @@ this repository contains the full copyright notices and license terms. -->