43537528211879537216518528522152191294736785427953577907465250813867268347029114745787897328675832738685339899600236280948219501566572133717787573215660963426741578036843317069182668371668141193884143637302986994340948226256320877111790053632793744098731382806228432917188725413430697204587489504220115244087597178665131322364457042341354826927831237462380523924275535845533501086912285285953036823496544516480227424423612622470927519732428889866275643960248010869192502740893403682746548142337016483601774416437733883981573045287101375241358871079349514245794779308382512505129321157954112823545679443584202796873598408875760428338355341775936762878006591910144278721680423270475842446839977987659548185282545387697467963662421366333818698786215909371526804342390910355028669687683208622782656320564765654885069592365086275273158896509322874676772931137051571376788951238704596836561497764567473625125815699364360251731899244152734974038600372298247582884427549618712415144475319978674812534081515991980177839300559153237412134354937451851533168787577392845962923789832180828790427844554794235719223490547580306833759862664662688732620648488372216213688494999398349864362193889038733237949631269960823396003839835383581735386833174339360930478902997824525826661923314313713113315416091595754317778965488127623751238345444335004165437658563911634991888289551134072824259234398908548522260257107175685187161697584812219434173365333354454202227546013534776280686036360614572795244976021482337573481436468443278645293493507710182554000914943119962157510074554935548066457878854459239189440375848568655163847847141857304391381099754880823878025108937384668029205906254262708343188853121967993120981481751995813586409411085237612010144106250860058342845193067450856630256071873261022070585435393438320212987082440997901160375669892958568529786119107564271363022765691053466113642982652573257181150425235372791586248833465570102535849849442032747991874326093575954335392022571335326567403433966908839893298483745754020542191472716443529479439276476570544156965516055952387429486734627428826779494814987192254584579552632780115618674621901552860621767666883291795782046441024319079882674323497684395859060463013238099213316245546018941569649243541059527415290912618634731077347151347661978953147246376440994790977362780790673755712033764794576740159882645023859478651576355158808782989915809246811159892940686629692205795311842591522657287228148892841881933648593089903809135626213046235331125138413405978987469259283564895143427356546526997959303764027146464835147779120791157554578244135970309641248478054257758584525701200355844814339529985933474420806493128610490979062509295239391795955741639286481124537454780493899995056892959275758449783874372089001242449488310821329892939951508211513031551925218886907374892611839765652491010701142783761143258408415514218309346906302319568648900446865252864989043159570370947760075075163129707600386552326850536780384805619554182791675955617903142506715342644722473878039818225646106512856084759157239813629803881358464437026766716705954594762477017211682476710488375524881112945822062384581549926689844757848923362423273564327529545364262556311261927950635196890107561353599429380694855760695583086080998789401705217630402809863485015036862128633662977286003588544949111586631451310602814828660554738745241145878225719418972715013662425799617347731632095045319833591317209491869500560095975388838098832076400680326215881245045279602278496517279525591465705864494929843283839711649683675364118394242532188079905082365306536612081211439161814766994443823840181573066549355894607499603219346126473787554711392472845205655620914101580426791769431453968889160889266674953488467532360732435489946145876376698767449658355517144793394993777277459031911219642718762145344251485258798179731799691507255349081400993617142643705198017971850565064770733927626209845406131069057529634403455501231274402393038444244224493129453958942988870887295871540876102248352447929694387689244319726079859196451691461989028851135182466427672976389420687486012301867949875554168322344148068222218150055248388285914687408065968218451263166339191486499182037665010575221696790193755853887982221493532764481600123426368506540665438921586660414083635384289941030475852052113403516006833109043387980157194683558287847988357187422256538711110866065917121731567510557464528313361475143608232518858579239315791749330011532308380180527685231996922187415266878031256500614179919445526088342556658170023798728625048101715798653031695786075233543667189742419539118571845504931439811227079186878813480821339148398237478187646253055201745946331289643273424095778944676719114179912207343976296053980701405380841865961886351772562658244449201712855028371572840202412767729444973313790796415500581983262145473508480144443249321145277191506398832649101576424494452290771337383642171914518082597356159128296507981260092573760753230166754168341066379404732162527923590274662537118784988824482160634899338759635582708945837329541249332462941155554383168148897481994295096447952301252499767774345949173624225664693889193972654610192411047634916369524734819798074771309896244543444973453763216608548845832258147922247669740899903165950724666912212325959682645245375436195896569583114213495783021566817221964981125537577844436854995916564729034774246124219963661262405341331712373771133081469347881007885845297588538558511305534822749595298344543984333391245098435444013530661971972499573025694001643493686917472399049504992831216935402451478240825786702442326908818762877279407161450657077890610013333256050613241682150587732727790505058348275905097341771093695825595235237741774341619054922003518686924291680031456701978711231349145111321783396260555790755064590630001953204182545002644582518378644403814724887979566353703481141516175515226634904125977371