38977466868582749285783185554704315226832515266773152703356805344595817032211220525327879213797673546559667845247741222075861796619552055969036567209660196603513850591156725101027133755957159662908675883625673481665592916439924886143407129234556151363431491013565107928693448489966260632691196125437847878642605113772029158129169435643359227673269532661834203771645611170232445491671827575129927476775489566506331239180380421505031301477197565259021119979837604168432436604576610640472136853428537464679394276294113298547348314587381440185003357760252954361794987683952951358954145631225190440351611208459125826633933229354127280258949402249281228237131152919891754039444586241446735254539929333743157852460388356277619936379745484135350061892142010986945163888260937723086973344916472300899730984017850141144805573773074299511214557245282200997564105833148665226767118623935851607652109773268361175162533510049963834679387055232945289600883517408241846853399217159583888043507189596556872206714988338516383837601764361944279528452246639943169091292480779142990778623782103598677167563658970638812811173373054743092226030362482298888604742711149467418957457966592899281101777994586316743587311826850386730761927725095744363217690618302710863928000434349592615033551912600142826785147820352404934060564015706700541422873643657441795683547166327521220197754906350455870294526164252270394636444514721360388051350385617095585663586874576097801712548856106174484270645316165352272357331591711645135899518364072281732454553935724237864803338635273512030843908398038668178604374501867398017923929621821232376883414328711713321428939386370565032144897475997605663720906956200130846425768298537895582538281799846331447219655085649518229848082719383841481524176256959041629419477622166668394174138347782925899299791250816072285135018630873886571079709587463064474223401920437737054036963999428625759126132539177121908354964615125319573759441173524113069844675720572228030183979582622459711803576439886495944556813546687172238861685554433059211900681391928905177405575807598876783820561125025970995377451359269824217043995004779381746138681480993940704821119916640533908177142993693388968129037011877926670977237251236869852173901042174863938871491316288919244419355772798501316236447125214712989787020614946439645222425549574701612548328540912318169243405439902299979785679704726187918210973372439320167868673528502915007339254832315488056152125678408534255470949979992720098612771823834172402190934714074486124103448138724171162525195853079997694482979103132773033365400745585863656614984647615906032981345268383047259552073555351281555927080415465004970800922199267894466833565598748045784983114973392736815477329068285710311796259367191966952780849257356501567015254696684780049575436911495229066529145427369948172393391986979987193378875547630551653155299331881788117562347542958316748399932950838263567612077188818856261956447090286360143501936867661927747491472459352864886188701650264893662208994416271712568585617499572645472393946833214574950044839441538185414874755954010997636257740904491174119235308118454221799242558341850139017716551616682525550125922283009667800239498393843288163598526784005499855014049874623697823192505261613369232527817127354324548333795559408041206858294156857303679453144943324245266568699841776361063942759091019144777075907806511416302968199853403717109164961796241546245377291903719457444385439094574190541339164116155039149846615442116471758422116154378787914542647637446327251129739126927549624320999415133508023621031334018149995765874325903850334162384419370347790657325805597587796271595997462299655695946468155801074068265523671232217535692353616966035165410133699714664852829266397326635475949914034480479618221963051076826948289823660134821132849865499194786876171943347849106397458299875816803719730358867599519549389271896288733114298184237217910066591780298697366216491477734089794246179266405950432103937874430511902205834544856765130920243995843291313461428958446553426085523175550664791779649945535310309913146523414115227979383506264836451440511978679863397143536909497725824826555427673005369376841837138210114405951232265417683437731097042282356970713603987272987210893614122796781557913875071158754906790297773416274302393134748061237824456850076376331059749685174568281493206124858053822466946119414939252505378885372424268602406893183229494902527871082479049647534198631389636755721433135195071554581452801490190993424126909465046811552574114598399413865626771793128059371752813137648944378534031368547292196900359388428852313179332645793476365304572342668303262353922511995879604371962911103708331394529708023346945887136951831164172267663125077453320874764480595033828347014807863544258881864421733590289522196412867788538853262827159763627958136542137965891654632258864484535665426429227170418855797453272246844489487228903737649065488384355161341280613515924593096641693293242653824569805965439574218519722162975955717816542223980853733457515635743442770917022137950953526492818824180543909413317043186874595578226806780969821919803820350336391355636903721814449374044033579146411012619147586621076484754742405047797240235796600970288396306280856283644809381176986078384528625455199740986326651736755841017438397836772830421894524140048286632938665069318929826162573645099631890930667658354346858889331108236188055289884909717422974236320515094529672642502505969309897192318318884622479025711827012757724742574484741658850726871492098267752701714353522018555922764706920827056313512292587796523821816398394246649742533155217150579247437819316876516629892348222127369538576710238248365341967943685264329541599333570403501380894485560516691840266704585137546876177633287331694353348411664920317953358037211855732414799617027621471288083307155230768542143379346685443346109037409936247656