306632088306288979569875442799599072576151094899837862951534889717958137490965153967846394222665522805720098878208115258215661338581036988091017345352850675805834473998192450571294955152954188961332444519065768321535738800548938902901235832018917717766910038004315593683775201972665692254541562149074667860250561723869988135642293752104831121295689339496940498849061427129474528249574210655104590183199492308440763921823279472318875235953654254728496255292323404347733758274271720097116904818620457526306047856443382616448944332083563309581030112161642755971356432861656638623612830769632242144449919075976296144583854066173365123327106856917718435887176227103794853192555462091458500503165279016364255273919876033784169292230905920651372472423071229514239663979071198116885768239055472773788274477264139378913528452360726332608215834804837623588667564747391269563844827907453888216130717433466125276364930548151856704874705301786765965612351546016084210916692993685238030078937627940486898971494338390436078838538536458594903255793338221348791143081217402635448612145273233786315211839580163592508813689245676388190352462322771962102814270595341089561235849769557940355690246036814511956575358766837010387890536028459361155313447911496764237328569689680432559254643346749580744954059165293355198876812660168364346721981281637381094937985954521319435419417373832914993779187722324652615785054259697519027803254843371298029290417048578564554517322246439689554428928643247236228066701263521937366955499425695886495782538311608039315998113394733865504610904966146180598887480160017644380629307946625042071807594974362309271264138959009894248818467542249917445285120897746794380222923088555149318330842683565230926233725193147814872626149116578171684667535847488537946578651755271811919940763834068325455915594478438888526428605460326425196069448523854426482568609537319391922696094579802341114736097476901361337086794213559719265354253772094471980356290336782194492077419018396866568142831467933965386675949131826438635564221973495741481639226258593754629379895792935968353072940771608118522864221062462755634599347272980384666719035553829957463936059726495496999404127178472858777215715607455657191731385061992644523511377772108712337643489202153083568149959525105025161088293420707225164809371414977605167930056043206864963078918374931959015776997711198773146666021782590711833471527688061631235587640407457819048717334079416179977450631082670439158345206555339683676442184642676331502981495434958659462911007747312724766891048404557126576471063617277632419689495095310401922411096309693916956606913735093011478437306522727748607597762924697188514164436964664176290748195869584614749941608189136074788783515101679028491495329306895461612534659816642184581405828139485173062623722320664911702282654901561782952377336568919714613553236057916525762726803513472204605660596765663646127353107904483789293247392994274399765981070338714892324879491702672605069479850458033122912921014255613808022477660806869708625862573887267641953198734393963790945160335301116331243652368183631914744218681711144601492469815664721542243658532122872695970550247026994511988048198657175542781764235103288274108565344020972574238933138509826856317973833554467417484532325981813860620824551714570427444083889638504215891896946124768927276723223127611387557983684126957647641509556481704935036785815146189750666490003168301743989550970350358419574449855883925852613315400825061758234277983662765324126252802228383974737953378076688462134901236168489684350661459641662387292311543895029574845099802435662710942210886157524999453175328891854576401368306199547171117547919051688832777161610743524107157722469177619951874994518430510279094931839093494473836180516268291208852910778171418319226299867288244922568420742067633424696744541875233916189486826900869141740665035183822937546070245652874299219935583359936477103439158380360585957628822486202717737684813201355527119008692766289899819416137762772193044124352140561896325818067761309513462219517902134619737418034597808526662813807459327674899783316157873571920062285828219866183634285499968503729311729995152857231365223421842273635479553694621267255113752276772164108172765226669489061919460810944242610088437168543634822610680124172680886425907056398614078655484553165613712901404254545315446697391427406943766035372699285921923542578125363553239224565797648283208637917719023479014737552311834733146905288614088718958468554972157322868033417955894924599578166043240285395831889720840263091959471637640123388605335216317448733359840354071113283095545553506437699007538614015885584942731749549551545412981203060572651929965254740976092349169702114739527131371938028203951827785137208961212334973608072587801887665914233897614246188973268422532026585295895720483776604252999821409534796437394466257590163454319535255921818278341332945952547746074985979520418986725141248675807711123867294227770246939788377733394157471896517671353172813093178295180401104955421843847445685197242281321981329268066548025035602236947225269751481504997587221730516823956565001842194750072526264988049926002254137391238749777754440849857625234986920902542795040175529752316637035997291917662239296088611431497858851320689083308914292949255147715130526459503108532945668445681275875787585552617893212457940581811195071658865989179716989932775122434096129944172233287843711157578492962548405735236641980274532526107162358656360929982721454668725681683600513452994471787339845398827489506406626628812626732781769532546338590312461061512390320160592736602987274216851681234668787365608843604069941681308949704251263934439400854494632976785220256325877814126633856980681165662799816579781892560728871099169534674104904065547384903355420388661614592180068065366040101416475394708325173687219671108139834006448729931271629622871143916691979188283