| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667 |
- (this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[
- /* 0 */
- /*!**************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/main.js ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 41));\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 42));\nvar _ass_api_grpc_web_pb = __webpack_require__(/*! ./grpc/ass_api_grpc_web_pb.js */ 45);\nvar _SqliteHelper = _interopRequireDefault(__webpack_require__(/*! ./utils/SqliteHelper.js */ 47));\nvar _ouuNfc = _interopRequireDefault(__webpack_require__(/*! ./utils/ouu-nfc.js */ 54));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_App.default.mpType = 'app';\n\n// 建立grpc连接服务 \n\n// 测试版\nvar client = new _ass_api_grpc_web_pb.ApiAssClient(\"http://192.168.0.3:10000\", null, null);\n\n// 正式版\n// let client = new ApiAssClient(\"http://otapi.beswell.com:10000\", null, null)\n\n// 挂载为全局方法 \n_vue.default.prototype.$client = client;\n\n// import { usqlite } from '@/uni_modules/onemue-USQLite/js_sdk/usqlite.js'\n\n_vue.default.prototype.$dbHelper = _SqliteHelper.default;\n_vue.default.prototype.$nfc = _ouuNfc.default;\n_ouuNfc.default.listenNFCStatus();\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwiQXBwIiwibXBUeXBlIiwiY2xpZW50IiwiQXBpQXNzQ2xpZW50IiwicHJvdG90eXBlIiwiJGNsaWVudCIsIiRkYkhlbHBlciIsIlNxbGl0ZUhlbHBlciIsIiRuZmMiLCJuZmMiLCJsaXN0ZW5ORkNTdGF0dXMiLCJhcHAiLCIkbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQXNCQTtBQUNBO0FBQW9DO0FBQUE7QUFuQnBDQSxZQUFHLENBQUNDLE1BQU0sQ0FBQ0MsYUFBYSxHQUFHLEtBQUs7QUFFaENDLFlBQUcsQ0FBQ0MsTUFBTSxHQUFHLEtBQUs7O0FBRWxCOztBQUVBO0FBQ0EsSUFBSUMsTUFBTSxHQUFHLElBQUlDLGlDQUFZLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzs7QUFFckU7QUFDQTs7QUFFQTtBQUNBTixZQUFHLENBQUNPLFNBQVMsQ0FBQ0MsT0FBTyxHQUFHSCxNQUFNOztBQUk5Qjs7QUFJQUwsWUFBRyxDQUFDTyxTQUFTLENBQUNFLFNBQVMsR0FBR0MscUJBQVk7QUFDdENWLFlBQUcsQ0FBQ08sU0FBUyxDQUFDSSxJQUFJLEdBQUdDLGVBQUc7QUFDeEJBLGVBQUcsQ0FBQ0MsZUFBZSxFQUFFO0FBV3JCLElBQU1DLEdBQUcsR0FBRyxJQUFJZCxZQUFHLG1CQUNmRyxZQUFHLEVBQ0w7QUFDRlcsR0FBRyxDQUFDQyxNQUFNLEVBQUUiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndW5pLXBhZ2VzJztcclxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBBcHAgZnJvbSAnLi9BcHAnXHJcbmltcG9ydCB7XHJcblx0QXBpQXNzQ2xpZW50XHJcbn0gZnJvbSBcIi4vZ3JwYy9hc3NfYXBpX2dycGNfd2ViX3BiLmpzXCJcclxuXHJcblZ1ZS5jb25maWcucHJvZHVjdGlvblRpcCA9IGZhbHNlXHJcblxyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuXHJcbi8vIOW7uueri2dycGPov57mjqXmnI3liqEgXHJcblxyXG4vLyDmtYvor5XniYhcclxubGV0IGNsaWVudCA9IG5ldyBBcGlBc3NDbGllbnQoXCJodHRwOi8vMTkyLjE2OC4wLjM6MTAwMDBcIiwgbnVsbCwgbnVsbClcclxuXHJcbi8vIOato+W8j+eJiFxyXG4vLyBsZXQgY2xpZW50ID0gbmV3IEFwaUFzc0NsaWVudChcImh0dHA6Ly9vdGFwaS5iZXN3ZWxsLmNvbToxMDAwMFwiLCBudWxsLCBudWxsKVxyXG5cclxuLy8g5oyC6L295Li65YWo5bGA5pa55rOVIFxyXG5WdWUucHJvdG90eXBlLiRjbGllbnQgPSBjbGllbnRcclxuXHJcblxyXG5cclxuLy8gaW1wb3J0IHsgdXNxbGl0ZSB9IGZyb20gJ0AvdW5pX21vZHVsZXMvb25lbXVlLVVTUUxpdGUvanNfc2RrL3VzcWxpdGUuanMnXHJcbmltcG9ydCBTcWxpdGVIZWxwZXIgZnJvbSAnLi91dGlscy9TcWxpdGVIZWxwZXIuanMnXHJcbmltcG9ydCBuZmMgZnJvbSAnLi91dGlscy9vdXUtbmZjLmpzJ1xyXG5cclxuVnVlLnByb3RvdHlwZS4kZGJIZWxwZXIgPSBTcWxpdGVIZWxwZXJcclxuVnVlLnByb3RvdHlwZS4kbmZjID0gbmZjXHJcbm5mYy5saXN0ZW5ORkNTdGF0dXMoKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbmNvbnN0IGFwcCA9IG5ldyBWdWUoe1xyXG5cdC4uLkFwcFxyXG59KVxyXG5hcHAuJG1vdW50KClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n");
- /***/ }),
- /* 1 */
- /*!**********************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
- \**********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
- }
- module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 2 */
- /*!***************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
- function _defineProperty(obj, key, value) {
- key = toPropertyKey(key);
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
- }
- module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 3 */
- /*!**************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
- \**************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
- var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5);
- function _toPropertyKey(arg) {
- var key = toPrimitive(arg, "string");
- return _typeof(key) === "symbol" ? key : String(key);
- }
- module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 4 */
- /*!*******************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
- \*******************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _typeof(obj) {
- "@babel/helpers - typeof";
- return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
- }
- module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 5 */
- /*!************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
- function _toPrimitive(input, hint) {
- if (_typeof(input) !== "object" || input === null) return input;
- var prim = input[Symbol.toPrimitive];
- if (prim !== undefined) {
- var res = prim.call(input, hint || "default");
- if (_typeof(res) !== "object") return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (hint === "string" ? String : Number)(input);
- }
- module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 6 */
- /*!*****************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages.json ***!
- \*****************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- if (typeof Promise !== 'undefined' && !Promise.prototype.finally) {
- Promise.prototype.finally = function (callback) {
- var promise = this.constructor;
- return this.then(function (value) {
- return promise.resolve(callback()).then(function () {
- return value;
- });
- }, function (reason) {
- return promise.resolve(callback()).then(function () {
- throw reason;
- });
- });
- };
- }
- if (typeof uni !== 'undefined' && uni && uni.requireGlobal) {
- var global = uni.requireGlobal();
- ArrayBuffer = global.ArrayBuffer;
- Int8Array = global.Int8Array;
- Uint8Array = global.Uint8Array;
- Uint8ClampedArray = global.Uint8ClampedArray;
- Int16Array = global.Int16Array;
- Uint16Array = global.Uint16Array;
- Int32Array = global.Int32Array;
- Uint32Array = global.Uint32Array;
- Float32Array = global.Float32Array;
- Float64Array = global.Float64Array;
- BigInt64Array = global.BigInt64Array;
- BigUint64Array = global.BigUint64Array;
- }
- if (uni.restoreGlobal) {
- uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
- }
- __definePage('pages/AO/mapShow', function () {
- return Vue.extend(__webpack_require__(/*! pages/AO/mapShow.vue?mpType=page */ 7).default);
- });
- __definePage('pages/nfc/nfc', function () {
- return Vue.extend(__webpack_require__(/*! pages/nfc/nfc.vue?mpType=page */ 11).default);
- });
- __definePage('pages/verify/verify', function () {
- return Vue.extend(__webpack_require__(/*! pages/verify/verify.vue?mpType=page */ 28).default);
- });
- /***/ }),
- /* 7 */
- /*!***************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?mpType=page ***!
- \***************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page */ 8);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\nvar script = {}\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n script,\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7c4266a1\",\n null,\n false,\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/AO/mapShow.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUEyUztBQUMzUztBQUNBOzs7QUFHQTtBQUNvTDtBQUNwTCxnQkFBZ0IsMkxBQVU7QUFDMUI7QUFDQSxFQUFFLHlRQUFNO0FBQ1IsRUFBRSxrUkFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSw2UUFBVTtBQUNaO0FBQ0E7O0FBRUE7QUFDZSxnRiIsImZpbGUiOiI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tYXBTaG93LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03YzQyNjZhMSZzY29wZWQ9dHJ1ZSZmaWx0ZXItbW9kdWxlcz1leUpzWldGbWJHVjBJanA3SW5SNWNHVWlPaUp5Wlc1a1pYSnFjeUlzSW1OdmJuUmxiblFpT2lJaUxDSnpkR0Z5ZENJNk16a3lMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUpzWldGbWJHVjBJaXdpYkdGdVp5STZJbXB6SW4wc0ltVnVaQ0k2TkRNd09YMTkmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG52YXIgc2NyaXB0ID0ge31cblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjdjNDI2NmExXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL0FPL21hcFNob3cudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n");
- /***/ }),
- /* 8 */
- /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page ***!
- \*************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page */ 9);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 9 */
- /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page ***!
- \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- try {
- components = {
- uniPopup:
- __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 55)
- .default,
- }
- } catch (e) {
- if (
- e.message.indexOf("Cannot find module") !== -1 &&
- e.message.indexOf(".vue") !== -1
- ) {
- console.error(e.message)
- console.error("1. 排查组件名称拼写是否正确")
- console.error(
- "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
- )
- console.error(
- "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
- )
- } else {
- throw e
- }
- }
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("view", [
- _c("view", {
- staticClass: _vm._$s(1, "sc", "map"),
- attrs: { id: "map", _i: 1 },
- }),
- _c(
- "view",
- [
- _c(
- "uni-popup",
- {
- ref: "popup",
- attrs: { "background-color": "#fff", _i: 3 },
- on: { change: _vm.change },
- },
- [
- _c(
- "view",
- {
- staticClass: _vm._$s(4, "sc", "popup-content"),
- class: _vm._$s(4, "c", {
- "popup-height": _vm.type === "left" || _vm.type === "right",
- }),
- attrs: { _i: 4 },
- },
- [
- _c("text", {
- staticClass: _vm._$s(5, "sc", "text"),
- attrs: { _i: 5 },
- }),
- ]
- ),
- ]
- ),
- ],
- 1
- ),
- ])
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 10 */
- /*!**********************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
- \**********************************************************************************************************/
- /*! exports provided: default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
- /* globals __VUE_SSR_CONTEXT__ */
- // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
- // This module is a runtime utility for cleaner component module output and will
- // be included in the final webpack user bundle.
- function normalizeComponent (
- scriptExports,
- render,
- staticRenderFns,
- functionalTemplate,
- injectStyles,
- scopeId,
- moduleIdentifier, /* server only */
- shadowMode, /* vue-cli only */
- components, // fixed by xxxxxx auto components
- renderjs // fixed by xxxxxx renderjs
- ) {
- // Vue.extend constructor export interop
- var options = typeof scriptExports === 'function'
- ? scriptExports.options
- : scriptExports
- // fixed by xxxxxx auto components
- if (components) {
- if (!options.components) {
- options.components = {}
- }
- var hasOwn = Object.prototype.hasOwnProperty
- for (var name in components) {
- if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
- options.components[name] = components[name]
- }
- }
- }
- // fixed by xxxxxx renderjs
- if (renderjs) {
- if(typeof renderjs.beforeCreate === 'function'){
- renderjs.beforeCreate = [renderjs.beforeCreate]
- }
- (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
- this[renderjs.__module] = this
- });
- (options.mixins || (options.mixins = [])).push(renderjs)
- }
- // render functions
- if (render) {
- options.render = render
- options.staticRenderFns = staticRenderFns
- options._compiled = true
- }
- // functional template
- if (functionalTemplate) {
- options.functional = true
- }
- // scopedId
- if (scopeId) {
- options._scopeId = 'data-v-' + scopeId
- }
- var hook
- if (moduleIdentifier) { // server build
- hook = function (context) {
- // 2.3 injection
- context =
- context || // cached call
- (this.$vnode && this.$vnode.ssrContext) || // stateful
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
- // 2.2 with runInNewContext: true
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- // inject component styles
- if (injectStyles) {
- injectStyles.call(this, context)
- }
- // register component module identifier for async chunk inferrence
- if (context && context._registeredComponents) {
- context._registeredComponents.add(moduleIdentifier)
- }
- }
- // used by ssr in case component is cached and beforeCreate
- // never gets called
- options._ssrRegister = hook
- } else if (injectStyles) {
- hook = shadowMode
- ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
- : injectStyles
- }
- if (hook) {
- if (options.functional) {
- // for template-only hot-reload because in that case the render fn doesn't
- // go through the normalizer
- options._injectStyles = hook
- // register for functioal component in vue file
- var originalRender = options.render
- options.render = function renderWithStyleInjection (h, context) {
- hook.call(context)
- return originalRender(h, context)
- }
- } else {
- // inject component registration as beforeCreate hook
- var existing = options.beforeCreate
- options.beforeCreate = existing
- ? [].concat(existing, hook)
- : [hook]
- }
- }
- return {
- exports: scriptExports,
- options: options
- }
- }
- /***/ }),
- /* 11 */
- /*!************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?mpType=page ***!
- \************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page */ 12);\n/* harmony import */ var _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nfc.vue?vue&type=script&lang=js&mpType=page */ 25);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"6158afae\",\n null,\n false,\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/nfc/nfc.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUk7QUFDdkk7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ29MO0FBQ3BMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSxxR0FBTTtBQUNSLEVBQUUsOEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL25mYy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjE1OGFmYWUmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL25mYy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbmZjLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI2MTU4YWZhZVwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9uZmMvbmZjLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n");
- /***/ }),
- /* 12 */
- /*!******************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page ***!
- \******************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page */ 13);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 13 */
- /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page ***!
- \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- try {
- components = {
- uniEasyinput:
- __webpack_require__(/*! @/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue */ 14)
- .default,
- }
- } catch (e) {
- if (
- e.message.indexOf("Cannot find module") !== -1 &&
- e.message.indexOf(".vue") !== -1
- ) {
- console.error(e.message)
- console.error("1. 排查组件名称拼写是否正确")
- console.error(
- "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
- )
- console.error(
- "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
- )
- } else {
- throw e
- }
- }
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "view",
- { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
- [
- _c("uni-easyinput", {
- attrs: { placeholder: "请输入要写入NFC的数据", _i: 1 },
- on: { input: _vm.input },
- model: {
- value: _vm._$s(1, "v-model", _vm.nfcWriteData),
- callback: function ($$v) {
- _vm.nfcWriteData = $$v
- },
- expression: "nfcWriteData",
- },
- }),
- _c(
- "view",
- { staticClass: _vm._$s(2, "sc", "btn-box"), attrs: { _i: 2 } },
- [
- _c("button", {
- staticClass: _vm._$s(3, "sc", "btn"),
- attrs: { _i: 3 },
- on: {
- click: function ($event) {
- return _vm.readData()
- },
- },
- }),
- _c("button", {
- staticClass: _vm._$s(4, "sc", "btn"),
- attrs: { _i: 4 },
- on: {
- click: function ($event) {
- return _vm.writeData()
- },
- },
- }),
- ]
- ),
- _c(
- "view",
- { staticClass: _vm._$s(5, "sc", "btn-box"), attrs: { _i: 5 } },
- [
- _c("button", {
- staticClass: _vm._$s(6, "sc", "btn"),
- attrs: { _i: 6 },
- on: {
- click: function ($event) {
- return _vm.getNfcState()
- },
- },
- }),
- _c("button", {
- staticClass: _vm._$s(7, "sc", "btn"),
- attrs: { _i: 7 },
- on: {
- click: function ($event) {
- return _vm.writeAndLock()
- },
- },
- }),
- ]
- ),
- _c(
- "view",
- { staticClass: _vm._$s(8, "sc", "btn-box"), attrs: { _i: 8 } },
- [
- _c("button", {
- staticClass: _vm._$s(9, "sc", "btn"),
- attrs: { _i: 9 },
- on: {
- click: function ($event) {
- return _vm.setPassword()
- },
- },
- }),
- _c("button", {
- staticClass: _vm._$s(10, "sc", "btn"),
- attrs: { _i: 10 },
- on: {
- click: function ($event) {
- return _vm.delPassword()
- },
- },
- }),
- ]
- ),
- ],
- 1
- )
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 14 */
- /*!***************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue ***!
- \***************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=template&id=abe12412& */ 15);\n/* harmony import */ var _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=script&lang=js& */ 23);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEg7QUFDMUg7QUFDaUU7QUFDTDs7O0FBRzVEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSx3RkFBTTtBQUNSLEVBQUUsaUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWFiZTEyNDEyJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLWVhc3lpbnB1dC9jb21wb25lbnRzL3VuaS1lYXN5aW5wdXQvdW5pLWVhc3lpbnB1dC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n");
- /***/ }),
- /* 15 */
- /*!**********************************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***!
- \**********************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=template&id=abe12412& */ 16);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 16 */
- /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***!
- \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- try {
- components = {
- uniIcons:
- __webpack_require__(/*! @/uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 17)
- .default,
- }
- } catch (e) {
- if (
- e.message.indexOf("Cannot find module") !== -1 &&
- e.message.indexOf(".vue") !== -1
- ) {
- console.error(e.message)
- console.error("1. 排查组件名称拼写是否正确")
- console.error(
- "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
- )
- console.error(
- "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
- )
- } else {
- throw e
- }
- }
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "view",
- {
- staticClass: _vm._$s(0, "sc", "uni-easyinput"),
- class: _vm._$s(0, "c", { "uni-easyinput-error": _vm.msg }),
- style: _vm._$s(0, "s", _vm.boxStyle),
- attrs: { _i: 0 },
- },
- [
- _c(
- "view",
- {
- staticClass: _vm._$s(1, "sc", "uni-easyinput__content"),
- class: _vm._$s(1, "c", _vm.inputContentClass),
- style: _vm._$s(1, "s", _vm.inputContentStyle),
- attrs: { _i: 1 },
- },
- [
- _vm._t(
- "prefixIcon",
- [
- _vm._$s(3, "i", _vm.prefixIcon)
- ? _c("uni-icons", {
- staticClass: _vm._$s(3, "sc", "content-clear-icon"),
- attrs: {
- type: _vm.prefixIcon,
- color: "#c0c4cc",
- size: "22",
- _i: 3,
- },
- on: {
- click: function ($event) {
- return _vm.onClickIcon("prefix")
- },
- },
- })
- : _vm._e(),
- ],
- { _i: 2 }
- ),
- _vm._$s(4, "i", _vm.type === "textarea")
- ? _c("textarea", {
- staticClass: _vm._$s(
- 4,
- "sc",
- "uni-easyinput__content-textarea"
- ),
- class: _vm._$s(4, "c", { "input-padding": _vm.inputBorder }),
- attrs: {
- name: _vm._$s(4, "a-name", _vm.name),
- value: _vm._$s(4, "a-value", _vm.val),
- placeholder: _vm._$s(4, "a-placeholder", _vm.placeholder),
- placeholderStyle: _vm._$s(
- 4,
- "a-placeholderStyle",
- _vm.placeholderStyle
- ),
- disabled: _vm._$s(4, "a-disabled", _vm.disabled),
- maxlength: _vm._$s(4, "a-maxlength", _vm.inputMaxlength),
- focus: _vm._$s(4, "a-focus", _vm.focused),
- autoHeight: _vm._$s(4, "a-autoHeight", _vm.autoHeight),
- _i: 4,
- },
- on: {
- input: _vm.onInput,
- blur: _vm._Blur,
- focus: _vm._Focus,
- confirm: _vm.onConfirm,
- },
- })
- : _c("input", {
- staticClass: _vm._$s(5, "sc", "uni-easyinput__content-input"),
- style: _vm._$s(5, "s", _vm.inputStyle),
- attrs: {
- type: _vm._$s(
- 5,
- "a-type",
- _vm.type === "password" ? "text" : _vm.type
- ),
- name: _vm._$s(5, "a-name", _vm.name),
- value: _vm._$s(5, "a-value", _vm.val),
- password: _vm._$s(
- 5,
- "a-password",
- !_vm.showPassword && _vm.type === "password"
- ),
- placeholder: _vm._$s(5, "a-placeholder", _vm.placeholder),
- placeholderStyle: _vm._$s(
- 5,
- "a-placeholderStyle",
- _vm.placeholderStyle
- ),
- disabled: _vm._$s(5, "a-disabled", _vm.disabled),
- maxlength: _vm._$s(5, "a-maxlength", _vm.inputMaxlength),
- focus: _vm._$s(5, "a-focus", _vm.focused),
- confirmType: _vm._$s(5, "a-confirmType", _vm.confirmType),
- _i: 5,
- },
- on: {
- focus: _vm._Focus,
- blur: _vm._Blur,
- input: _vm.onInput,
- confirm: _vm.onConfirm,
- },
- }),
- _vm._$s(6, "i", _vm.type === "password" && _vm.passwordIcon)
- ? [
- _vm._$s(7, "i", _vm.isVal)
- ? _c("uni-icons", {
- staticClass: _vm._$s(7, "sc", "content-clear-icon"),
- class: _vm._$s(7, "c", {
- "is-textarea-icon": _vm.type === "textarea",
- }),
- attrs: {
- type: _vm.showPassword
- ? "eye-slash-filled"
- : "eye-filled",
- size: 22,
- color: _vm.focusShow ? _vm.primaryColor : "#c0c4cc",
- _i: 7,
- },
- on: { click: _vm.onEyes },
- })
- : _vm._e(),
- ]
- : _vm._$s(8, "e", _vm.suffixIcon || _vm.$slots.suffixIcon)
- ? [
- _vm._t(
- "suffixIcon",
- [
- _vm._$s(10, "i", _vm.suffixIcon)
- ? _c("uni-icons", {
- staticClass: _vm._$s(10, "sc", "content-clear-icon"),
- attrs: {
- type: _vm.suffixIcon,
- color: "#c0c4cc",
- size: "22",
- _i: 10,
- },
- on: {
- click: function ($event) {
- return _vm.onClickIcon("suffix")
- },
- },
- })
- : _vm._e(),
- ],
- { _i: 9 }
- ),
- ]
- : [
- _vm._$s(
- 12,
- "i",
- _vm.clearable &&
- _vm.isVal &&
- !_vm.disabled &&
- _vm.type !== "textarea"
- )
- ? _c("uni-icons", {
- staticClass: _vm._$s(12, "sc", "content-clear-icon"),
- class: _vm._$s(12, "c", {
- "is-textarea-icon": _vm.type === "textarea",
- }),
- attrs: {
- type: "clear",
- size: _vm.clearSize,
- color: _vm.msg
- ? "#dd524d"
- : _vm.focusShow
- ? _vm.primaryColor
- : "#c0c4cc",
- _i: 12,
- },
- on: { click: _vm.onClear },
- })
- : _vm._e(),
- ],
- _vm._t("right", null, { _i: 13 }),
- ],
- 2
- ),
- ]
- )
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 17 */
- /*!***************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 18);\n/* harmony import */ var _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=script&lang=js& */ 20);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-icons/components/uni-icons/uni-icons.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1pY29ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTJlODFmNmUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n");
- /***/ }),
- /* 18 */
- /*!**********************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***!
- \**********************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 19);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 19 */
- /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***!
- \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c("text", {
- staticClass: _vm._$s(0, "sc", "uni-icons"),
- class: _vm._$s(0, "c", [
- "uniui-" + _vm.type,
- _vm.customPrefix,
- _vm.customPrefix ? _vm.type : "",
- ]),
- style: _vm._$s(0, "s", { color: _vm.color, "font-size": _vm.iconSize }),
- attrs: { _i: 0 },
- on: { click: _vm._onClick },
- })
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 20 */
- /*!****************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***!
- \****************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=script&lang=js& */ 21);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlvQixDQUFnQix1bkJBQUcsRUFBQyIsImZpbGUiOiIyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWljb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n");
- /***/ }),
- /* 21 */
- /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***!
- \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _icons = _interopRequireDefault(__webpack_require__(/*! ./icons.js */ 22));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar getVal = function getVal(val) {\n var reg = /^[0-9]*$/g;\n return typeof val === 'number' || reg.test(val) ? val + 'px' : val;\n};\n\n/**\n * Icons 图标\n * @description 用于展示 icons 图标\n * @tutorial https://ext.dcloud.net.cn/plugin?id=28\n * @property {Number} size 图标大小\n * @property {String} type 图标图案,参考示例\n * @property {String} color 图标颜色\n * @property {String} customPrefix 自定义图标\n * @event {Function} click 点击 Icon 触发事件\n */\nvar _default = {\n name: 'UniIcons',\n emits: ['click'],\n props: {\n type: {\n type: String,\n default: ''\n },\n color: {\n type: String,\n default: '#333333'\n },\n size: {\n type: [Number, String],\n default: 16\n },\n customPrefix: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n icons: _icons.default.glyphs\n };\n },\n computed: {\n unicode: function unicode() {\n var _this = this;\n var code = this.icons.find(function (v) {\n return v.font_class === _this.type;\n });\n if (code) {\n return unescape(\"%u\".concat(code.unicode));\n }\n return '';\n },\n iconSize: function iconSize() {\n return getVal(this.size);\n }\n },\n methods: {\n _onClick: function _onClick() {\n this.$emit('click');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbG9yIiwic2l6ZSIsImN1c3RvbVByZWZpeCIsImRhdGEiLCJpY29ucyIsImNvbXB1dGVkIiwidW5pY29kZSIsImljb25TaXplIiwibWV0aG9kcyIsIl9vbkNsaWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUE7Ozs7Ozs7Ozs7O0FBQ0E7RUFDQTtFQUNBO0FBQ0E7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQSxlQVVBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRTtNQUNBSDtNQUNBQztJQUNBO0lBQ0FHO01BQ0FKO01BQ0FDO0lBQ0E7RUFDQTtFQUNBSTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG5cdDwhLS0gI2lmZGVmIEFQUC1OVlVFIC0tPlxuXHQ8dGV4dCA6c3R5bGU9XCJ7IGNvbG9yOiBjb2xvciwgJ2ZvbnQtc2l6ZSc6IGljb25TaXplIH1cIiBjbGFzcz1cInVuaS1pY29uc1wiIEBjbGljaz1cIl9vbkNsaWNrXCI+e3t1bmljb2RlfX08L3RleHQ+XG5cdDwhLS0gI2VuZGlmIC0tPlxuXHQ8IS0tICNpZm5kZWYgQVBQLU5WVUUgLS0+XG5cdDx0ZXh0IDpzdHlsZT1cInsgY29sb3I6IGNvbG9yLCAnZm9udC1zaXplJzogaWNvblNpemUgfVwiIGNsYXNzPVwidW5pLWljb25zXCIgOmNsYXNzPVwiWyd1bml1aS0nK3R5cGUsY3VzdG9tUHJlZml4LGN1c3RvbVByZWZpeD90eXBlOicnXVwiIEBjbGljaz1cIl9vbkNsaWNrXCI+PC90ZXh0PlxuXHQ8IS0tICNlbmRpZiAtLT5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGljb25zIGZyb20gJy4vaWNvbnMuanMnO1xuXHRjb25zdCBnZXRWYWwgPSAodmFsKSA9PiB7XG5cdFx0Y29uc3QgcmVnID0gL15bMC05XSokL2dcblx0XHRyZXR1cm4gKHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx844CAcmVnLnRlc3QodmFsKSApPyB2YWwgKyAncHgnIDogdmFsO1xuXHR9IFxyXG5cdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdHZhciBkb21Nb2R1bGUgPSB3ZWV4LnJlcXVpcmVNb2R1bGUoJ2RvbScpO1xyXG5cdGltcG9ydCBpY29uVXJsIGZyb20gJy4vdW5paWNvbnMudHRmJ1xyXG5cdGRvbU1vZHVsZS5hZGRSdWxlKCdmb250RmFjZScsIHtcclxuXHRcdCdmb250RmFtaWx5JzogXCJ1bmlpY29uc1wiLFxyXG5cdFx0J3NyYyc6IFwidXJsKCdcIitpY29uVXJsK1wiJylcIlxyXG5cdH0pO1xyXG5cdC8vICNlbmRpZlxyXG5cclxuXHQvKipcclxuXHQgKiBJY29ucyDlm77moIdcclxuXHQgKiBAZGVzY3JpcHRpb24g55So5LqO5bGV56S6IGljb25zIOWbvuagh1xyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yOFxyXG5cdCAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBzaXplIOWbvuagh+Wkp+Wwj1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB0eXBlIOWbvuagh+WbvuahiO+8jOWPguiAg+ekuuS+i1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBjb2xvciDlm77moIfpopzoibJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGN1c3RvbVByZWZpeCDoh6rlrprkuYnlm77moIdcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xpY2sg54K55Ye7IEljb24g6Kem5Y+R5LqL5Lu2XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ1VuaUljb25zJyxcclxuXHRcdGVtaXRzOlsnY2xpY2snXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29sb3I6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJyMzMzMzMzMnXHJcblx0XHRcdH0sXHJcblx0XHRcdHNpemU6IHtcclxuXHRcdFx0XHR0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IDE2XHJcblx0XHRcdH0sXG5cdFx0XHRjdXN0b21QcmVmaXg6e1xuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRpY29uczogaWNvbnMuZ2x5cGhzXHJcblx0XHRcdH1cclxuXHRcdH0sXG5cdFx0Y29tcHV0ZWQ6e1xuXHRcdFx0dW5pY29kZSgpe1xuXHRcdFx0XHRsZXQgY29kZSA9IHRoaXMuaWNvbnMuZmluZCh2PT52LmZvbnRfY2xhc3MgPT09IHRoaXMudHlwZSlcblx0XHRcdFx0aWYoY29kZSl7XG5cdFx0XHRcdFx0cmV0dXJuIHVuZXNjYXBlKGAldSR7Y29kZS51bmljb2RlfWApXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuICcnXG5cdFx0XHR9LFxuXHRcdFx0aWNvblNpemUoKXtcblx0XHRcdFx0cmV0dXJuIGdldFZhbCh0aGlzLnNpemUpXG5cdFx0XHR9XG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0X29uQ2xpY2soKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdEBpbXBvcnQgJy4vdW5paWNvbnMuY3NzJztcclxuXHRAZm9udC1mYWNlIHtcclxuXHRcdGZvbnQtZmFtaWx5OiB1bmlpY29ucztcclxuXHRcdHNyYzogdXJsKCcuL3VuaWljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxuXHR9XHJcblxyXG5cdC8qICNlbmRpZiAqL1xuXHQudW5pLWljb25zIHtcclxuXHRcdGZvbnQtZmFtaWx5OiB1bmlpY29ucztcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n");
- /***/ }),
- /* 22 */
- /*!**********************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/icons.js ***!
- \**********************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n \"id\": \"2852637\",\n \"name\": \"uniui图标库\",\n \"font_family\": \"uniicons\",\n \"css_prefix_text\": \"uniui-\",\n \"description\": \"\",\n \"glyphs\": [{\n \"icon_id\": \"25027049\",\n \"name\": \"yanse\",\n \"font_class\": \"color\",\n \"unicode\": \"e6cf\",\n \"unicode_decimal\": 59087\n }, {\n \"icon_id\": \"25027048\",\n \"name\": \"wallet\",\n \"font_class\": \"wallet\",\n \"unicode\": \"e6b1\",\n \"unicode_decimal\": 59057\n }, {\n \"icon_id\": \"25015720\",\n \"name\": \"settings-filled\",\n \"font_class\": \"settings-filled\",\n \"unicode\": \"e6ce\",\n \"unicode_decimal\": 59086\n }, {\n \"icon_id\": \"25015434\",\n \"name\": \"shimingrenzheng-filled\",\n \"font_class\": \"auth-filled\",\n \"unicode\": \"e6cc\",\n \"unicode_decimal\": 59084\n }, {\n \"icon_id\": \"24934246\",\n \"name\": \"shop-filled\",\n \"font_class\": \"shop-filled\",\n \"unicode\": \"e6cd\",\n \"unicode_decimal\": 59085\n }, {\n \"icon_id\": \"24934159\",\n \"name\": \"staff-filled-01\",\n \"font_class\": \"staff-filled\",\n \"unicode\": \"e6cb\",\n \"unicode_decimal\": 59083\n }, {\n \"icon_id\": \"24932461\",\n \"name\": \"VIP-filled\",\n \"font_class\": \"vip-filled\",\n \"unicode\": \"e6c6\",\n \"unicode_decimal\": 59078\n }, {\n \"icon_id\": \"24932462\",\n \"name\": \"plus_circle_fill\",\n \"font_class\": \"plus-filled\",\n \"unicode\": \"e6c7\",\n \"unicode_decimal\": 59079\n }, {\n \"icon_id\": \"24932463\",\n \"name\": \"folder_add-filled\",\n \"font_class\": \"folder-add-filled\",\n \"unicode\": \"e6c8\",\n \"unicode_decimal\": 59080\n }, {\n \"icon_id\": \"24932464\",\n \"name\": \"yanse-filled\",\n \"font_class\": \"color-filled\",\n \"unicode\": \"e6c9\",\n \"unicode_decimal\": 59081\n }, {\n \"icon_id\": \"24932465\",\n \"name\": \"tune-filled\",\n \"font_class\": \"tune-filled\",\n \"unicode\": \"e6ca\",\n \"unicode_decimal\": 59082\n }, {\n \"icon_id\": \"24932455\",\n \"name\": \"a-rilidaka-filled\",\n \"font_class\": \"calendar-filled\",\n \"unicode\": \"e6c0\",\n \"unicode_decimal\": 59072\n }, {\n \"icon_id\": \"24932456\",\n \"name\": \"notification-filled\",\n \"font_class\": \"notification-filled\",\n \"unicode\": \"e6c1\",\n \"unicode_decimal\": 59073\n }, {\n \"icon_id\": \"24932457\",\n \"name\": \"wallet-filled\",\n \"font_class\": \"wallet-filled\",\n \"unicode\": \"e6c2\",\n \"unicode_decimal\": 59074\n }, {\n \"icon_id\": \"24932458\",\n \"name\": \"paihangbang-filled\",\n \"font_class\": \"medal-filled\",\n \"unicode\": \"e6c3\",\n \"unicode_decimal\": 59075\n }, {\n \"icon_id\": \"24932459\",\n \"name\": \"gift-filled\",\n \"font_class\": \"gift-filled\",\n \"unicode\": \"e6c4\",\n \"unicode_decimal\": 59076\n }, {\n \"icon_id\": \"24932460\",\n \"name\": \"fire-filled\",\n \"font_class\": \"fire-filled\",\n \"unicode\": \"e6c5\",\n \"unicode_decimal\": 59077\n }, {\n \"icon_id\": \"24928001\",\n \"name\": \"refreshempty\",\n \"font_class\": \"refreshempty\",\n \"unicode\": \"e6bf\",\n \"unicode_decimal\": 59071\n }, {\n \"icon_id\": \"24926853\",\n \"name\": \"location-ellipse\",\n \"font_class\": \"location-filled\",\n \"unicode\": \"e6af\",\n \"unicode_decimal\": 59055\n }, {\n \"icon_id\": \"24926735\",\n \"name\": \"person-filled\",\n \"font_class\": \"person-filled\",\n \"unicode\": \"e69d\",\n \"unicode_decimal\": 59037\n }, {\n \"icon_id\": \"24926703\",\n \"name\": \"personadd-filled\",\n \"font_class\": \"personadd-filled\",\n \"unicode\": \"e698\",\n \"unicode_decimal\": 59032\n }, {\n \"icon_id\": \"24923351\",\n \"name\": \"back\",\n \"font_class\": \"back\",\n \"unicode\": \"e6b9\",\n \"unicode_decimal\": 59065\n }, {\n \"icon_id\": \"24923352\",\n \"name\": \"forward\",\n \"font_class\": \"forward\",\n \"unicode\": \"e6ba\",\n \"unicode_decimal\": 59066\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrow-right\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrowthinright\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrow-left\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrowthinleft\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrow-up\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrowthinup\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrow-down\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrowthindown\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"bottom\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"arrowdown\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"right\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"arrowright\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"top\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"arrowup\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"left\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"arrowleft\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923334\",\n \"name\": \"eye\",\n \"font_class\": \"eye\",\n \"unicode\": \"e651\",\n \"unicode_decimal\": 58961\n }, {\n \"icon_id\": \"24923335\",\n \"name\": \"eye-filled\",\n \"font_class\": \"eye-filled\",\n \"unicode\": \"e66a\",\n \"unicode_decimal\": 58986\n }, {\n \"icon_id\": \"24923336\",\n \"name\": \"eye-slash\",\n \"font_class\": \"eye-slash\",\n \"unicode\": \"e6b3\",\n \"unicode_decimal\": 59059\n }, {\n \"icon_id\": \"24923337\",\n \"name\": \"eye-slash-filled\",\n \"font_class\": \"eye-slash-filled\",\n \"unicode\": \"e6b4\",\n \"unicode_decimal\": 59060\n }, {\n \"icon_id\": \"24923305\",\n \"name\": \"info-filled\",\n \"font_class\": \"info-filled\",\n \"unicode\": \"e649\",\n \"unicode_decimal\": 58953\n }, {\n \"icon_id\": \"24923299\",\n \"name\": \"reload-01\",\n \"font_class\": \"reload\",\n \"unicode\": \"e6b2\",\n \"unicode_decimal\": 59058\n }, {\n \"icon_id\": \"24923195\",\n \"name\": \"mic_slash_fill\",\n \"font_class\": \"micoff-filled\",\n \"unicode\": \"e6b0\",\n \"unicode_decimal\": 59056\n }, {\n \"icon_id\": \"24923165\",\n \"name\": \"map-pin-ellipse\",\n \"font_class\": \"map-pin-ellipse\",\n \"unicode\": \"e6ac\",\n \"unicode_decimal\": 59052\n }, {\n \"icon_id\": \"24923166\",\n \"name\": \"map-pin\",\n \"font_class\": \"map-pin\",\n \"unicode\": \"e6ad\",\n \"unicode_decimal\": 59053\n }, {\n \"icon_id\": \"24923167\",\n \"name\": \"location\",\n \"font_class\": \"location\",\n \"unicode\": \"e6ae\",\n \"unicode_decimal\": 59054\n }, {\n \"icon_id\": \"24923064\",\n \"name\": \"starhalf\",\n \"font_class\": \"starhalf\",\n \"unicode\": \"e683\",\n \"unicode_decimal\": 59011\n }, {\n \"icon_id\": \"24923065\",\n \"name\": \"star\",\n \"font_class\": \"star\",\n \"unicode\": \"e688\",\n \"unicode_decimal\": 59016\n }, {\n \"icon_id\": \"24923066\",\n \"name\": \"star-filled\",\n \"font_class\": \"star-filled\",\n \"unicode\": \"e68f\",\n \"unicode_decimal\": 59023\n }, {\n \"icon_id\": \"24899646\",\n \"name\": \"a-rilidaka\",\n \"font_class\": \"calendar\",\n \"unicode\": \"e6a0\",\n \"unicode_decimal\": 59040\n }, {\n \"icon_id\": \"24899647\",\n \"name\": \"fire\",\n \"font_class\": \"fire\",\n \"unicode\": \"e6a1\",\n \"unicode_decimal\": 59041\n }, {\n \"icon_id\": \"24899648\",\n \"name\": \"paihangbang\",\n \"font_class\": \"medal\",\n \"unicode\": \"e6a2\",\n \"unicode_decimal\": 59042\n }, {\n \"icon_id\": \"24899649\",\n \"name\": \"font\",\n \"font_class\": \"font\",\n \"unicode\": \"e6a3\",\n \"unicode_decimal\": 59043\n }, {\n \"icon_id\": \"24899650\",\n \"name\": \"gift\",\n \"font_class\": \"gift\",\n \"unicode\": \"e6a4\",\n \"unicode_decimal\": 59044\n }, {\n \"icon_id\": \"24899651\",\n \"name\": \"link\",\n \"font_class\": \"link\",\n \"unicode\": \"e6a5\",\n \"unicode_decimal\": 59045\n }, {\n \"icon_id\": \"24899652\",\n \"name\": \"notification\",\n \"font_class\": \"notification\",\n \"unicode\": \"e6a6\",\n \"unicode_decimal\": 59046\n }, {\n \"icon_id\": \"24899653\",\n \"name\": \"staff\",\n \"font_class\": \"staff\",\n \"unicode\": \"e6a7\",\n \"unicode_decimal\": 59047\n }, {\n \"icon_id\": \"24899654\",\n \"name\": \"VIP\",\n \"font_class\": \"vip\",\n \"unicode\": \"e6a8\",\n \"unicode_decimal\": 59048\n }, {\n \"icon_id\": \"24899655\",\n \"name\": \"folder_add\",\n \"font_class\": \"folder-add\",\n \"unicode\": \"e6a9\",\n \"unicode_decimal\": 59049\n }, {\n \"icon_id\": \"24899656\",\n \"name\": \"tune\",\n \"font_class\": \"tune\",\n \"unicode\": \"e6aa\",\n \"unicode_decimal\": 59050\n }, {\n \"icon_id\": \"24899657\",\n \"name\": \"shimingrenzheng\",\n \"font_class\": \"auth\",\n \"unicode\": \"e6ab\",\n \"unicode_decimal\": 59051\n }, {\n \"icon_id\": \"24899565\",\n \"name\": \"person\",\n \"font_class\": \"person\",\n \"unicode\": \"e699\",\n \"unicode_decimal\": 59033\n }, {\n \"icon_id\": \"24899566\",\n \"name\": \"email-filled\",\n \"font_class\": \"email-filled\",\n \"unicode\": \"e69a\",\n \"unicode_decimal\": 59034\n }, {\n \"icon_id\": \"24899567\",\n \"name\": \"phone-filled\",\n \"font_class\": \"phone-filled\",\n \"unicode\": \"e69b\",\n \"unicode_decimal\": 59035\n }, {\n \"icon_id\": \"24899568\",\n \"name\": \"phone\",\n \"font_class\": \"phone\",\n \"unicode\": \"e69c\",\n \"unicode_decimal\": 59036\n }, {\n \"icon_id\": \"24899570\",\n \"name\": \"email\",\n \"font_class\": \"email\",\n \"unicode\": \"e69e\",\n \"unicode_decimal\": 59038\n }, {\n \"icon_id\": \"24899571\",\n \"name\": \"personadd\",\n \"font_class\": \"personadd\",\n \"unicode\": \"e69f\",\n \"unicode_decimal\": 59039\n }, {\n \"icon_id\": \"24899558\",\n \"name\": \"chatboxes-filled\",\n \"font_class\": \"chatboxes-filled\",\n \"unicode\": \"e692\",\n \"unicode_decimal\": 59026\n }, {\n \"icon_id\": \"24899559\",\n \"name\": \"contact\",\n \"font_class\": \"contact\",\n \"unicode\": \"e693\",\n \"unicode_decimal\": 59027\n }, {\n \"icon_id\": \"24899560\",\n \"name\": \"chatbubble-filled\",\n \"font_class\": \"chatbubble-filled\",\n \"unicode\": \"e694\",\n \"unicode_decimal\": 59028\n }, {\n \"icon_id\": \"24899561\",\n \"name\": \"contact-filled\",\n \"font_class\": \"contact-filled\",\n \"unicode\": \"e695\",\n \"unicode_decimal\": 59029\n }, {\n \"icon_id\": \"24899562\",\n \"name\": \"chatboxes\",\n \"font_class\": \"chatboxes\",\n \"unicode\": \"e696\",\n \"unicode_decimal\": 59030\n }, {\n \"icon_id\": \"24899563\",\n \"name\": \"chatbubble\",\n \"font_class\": \"chatbubble\",\n \"unicode\": \"e697\",\n \"unicode_decimal\": 59031\n }, {\n \"icon_id\": \"24881290\",\n \"name\": \"upload-filled\",\n \"font_class\": \"upload-filled\",\n \"unicode\": \"e68e\",\n \"unicode_decimal\": 59022\n }, {\n \"icon_id\": \"24881292\",\n \"name\": \"upload\",\n \"font_class\": \"upload\",\n \"unicode\": \"e690\",\n \"unicode_decimal\": 59024\n }, {\n \"icon_id\": \"24881293\",\n \"name\": \"weixin\",\n \"font_class\": \"weixin\",\n \"unicode\": \"e691\",\n \"unicode_decimal\": 59025\n }, {\n \"icon_id\": \"24881274\",\n \"name\": \"compose\",\n \"font_class\": \"compose\",\n \"unicode\": \"e67f\",\n \"unicode_decimal\": 59007\n }, {\n \"icon_id\": \"24881275\",\n \"name\": \"qq\",\n \"font_class\": \"qq\",\n \"unicode\": \"e680\",\n \"unicode_decimal\": 59008\n }, {\n \"icon_id\": \"24881276\",\n \"name\": \"download-filled\",\n \"font_class\": \"download-filled\",\n \"unicode\": \"e681\",\n \"unicode_decimal\": 59009\n }, {\n \"icon_id\": \"24881277\",\n \"name\": \"pengyouquan\",\n \"font_class\": \"pyq\",\n \"unicode\": \"e682\",\n \"unicode_decimal\": 59010\n }, {\n \"icon_id\": \"24881279\",\n \"name\": \"sound\",\n \"font_class\": \"sound\",\n \"unicode\": \"e684\",\n \"unicode_decimal\": 59012\n }, {\n \"icon_id\": \"24881280\",\n \"name\": \"trash-filled\",\n \"font_class\": \"trash-filled\",\n \"unicode\": \"e685\",\n \"unicode_decimal\": 59013\n }, {\n \"icon_id\": \"24881281\",\n \"name\": \"sound-filled\",\n \"font_class\": \"sound-filled\",\n \"unicode\": \"e686\",\n \"unicode_decimal\": 59014\n }, {\n \"icon_id\": \"24881282\",\n \"name\": \"trash\",\n \"font_class\": \"trash\",\n \"unicode\": \"e687\",\n \"unicode_decimal\": 59015\n }, {\n \"icon_id\": \"24881284\",\n \"name\": \"videocam-filled\",\n \"font_class\": \"videocam-filled\",\n \"unicode\": \"e689\",\n \"unicode_decimal\": 59017\n }, {\n \"icon_id\": \"24881285\",\n \"name\": \"spinner-cycle\",\n \"font_class\": \"spinner-cycle\",\n \"unicode\": \"e68a\",\n \"unicode_decimal\": 59018\n }, {\n \"icon_id\": \"24881286\",\n \"name\": \"weibo\",\n \"font_class\": \"weibo\",\n \"unicode\": \"e68b\",\n \"unicode_decimal\": 59019\n }, {\n \"icon_id\": \"24881288\",\n \"name\": \"videocam\",\n \"font_class\": \"videocam\",\n \"unicode\": \"e68c\",\n \"unicode_decimal\": 59020\n }, {\n \"icon_id\": \"24881289\",\n \"name\": \"download\",\n \"font_class\": \"download\",\n \"unicode\": \"e68d\",\n \"unicode_decimal\": 59021\n }, {\n \"icon_id\": \"24879601\",\n \"name\": \"help\",\n \"font_class\": \"help\",\n \"unicode\": \"e679\",\n \"unicode_decimal\": 59001\n }, {\n \"icon_id\": \"24879602\",\n \"name\": \"navigate-filled\",\n \"font_class\": \"navigate-filled\",\n \"unicode\": \"e67a\",\n \"unicode_decimal\": 59002\n }, {\n \"icon_id\": \"24879603\",\n \"name\": \"plusempty\",\n \"font_class\": \"plusempty\",\n \"unicode\": \"e67b\",\n \"unicode_decimal\": 59003\n }, {\n \"icon_id\": \"24879604\",\n \"name\": \"smallcircle\",\n \"font_class\": \"smallcircle\",\n \"unicode\": \"e67c\",\n \"unicode_decimal\": 59004\n }, {\n \"icon_id\": \"24879605\",\n \"name\": \"minus-filled\",\n \"font_class\": \"minus-filled\",\n \"unicode\": \"e67d\",\n \"unicode_decimal\": 59005\n }, {\n \"icon_id\": \"24879606\",\n \"name\": \"micoff\",\n \"font_class\": \"micoff\",\n \"unicode\": \"e67e\",\n \"unicode_decimal\": 59006\n }, {\n \"icon_id\": \"24879588\",\n \"name\": \"closeempty\",\n \"font_class\": \"closeempty\",\n \"unicode\": \"e66c\",\n \"unicode_decimal\": 58988\n }, {\n \"icon_id\": \"24879589\",\n \"name\": \"clear\",\n \"font_class\": \"clear\",\n \"unicode\": \"e66d\",\n \"unicode_decimal\": 58989\n }, {\n \"icon_id\": \"24879590\",\n \"name\": \"navigate\",\n \"font_class\": \"navigate\",\n \"unicode\": \"e66e\",\n \"unicode_decimal\": 58990\n }, {\n \"icon_id\": \"24879591\",\n \"name\": \"minus\",\n \"font_class\": \"minus\",\n \"unicode\": \"e66f\",\n \"unicode_decimal\": 58991\n }, {\n \"icon_id\": \"24879592\",\n \"name\": \"image\",\n \"font_class\": \"image\",\n \"unicode\": \"e670\",\n \"unicode_decimal\": 58992\n }, {\n \"icon_id\": \"24879593\",\n \"name\": \"mic\",\n \"font_class\": \"mic\",\n \"unicode\": \"e671\",\n \"unicode_decimal\": 58993\n }, {\n \"icon_id\": \"24879594\",\n \"name\": \"paperplane\",\n \"font_class\": \"paperplane\",\n \"unicode\": \"e672\",\n \"unicode_decimal\": 58994\n }, {\n \"icon_id\": \"24879595\",\n \"name\": \"close\",\n \"font_class\": \"close\",\n \"unicode\": \"e673\",\n \"unicode_decimal\": 58995\n }, {\n \"icon_id\": \"24879596\",\n \"name\": \"help-filled\",\n \"font_class\": \"help-filled\",\n \"unicode\": \"e674\",\n \"unicode_decimal\": 58996\n }, {\n \"icon_id\": \"24879597\",\n \"name\": \"plus-filled\",\n \"font_class\": \"paperplane-filled\",\n \"unicode\": \"e675\",\n \"unicode_decimal\": 58997\n }, {\n \"icon_id\": \"24879598\",\n \"name\": \"plus\",\n \"font_class\": \"plus\",\n \"unicode\": \"e676\",\n \"unicode_decimal\": 58998\n }, {\n \"icon_id\": \"24879599\",\n \"name\": \"mic-filled\",\n \"font_class\": \"mic-filled\",\n \"unicode\": \"e677\",\n \"unicode_decimal\": 58999\n }, {\n \"icon_id\": \"24879600\",\n \"name\": \"image-filled\",\n \"font_class\": \"image-filled\",\n \"unicode\": \"e678\",\n \"unicode_decimal\": 59000\n }, {\n \"icon_id\": \"24855900\",\n \"name\": \"locked-filled\",\n \"font_class\": \"locked-filled\",\n \"unicode\": \"e668\",\n \"unicode_decimal\": 58984\n }, {\n \"icon_id\": \"24855901\",\n \"name\": \"info\",\n \"font_class\": \"info\",\n \"unicode\": \"e669\",\n \"unicode_decimal\": 58985\n }, {\n \"icon_id\": \"24855903\",\n \"name\": \"locked\",\n \"font_class\": \"locked\",\n \"unicode\": \"e66b\",\n \"unicode_decimal\": 58987\n }, {\n \"icon_id\": \"24855884\",\n \"name\": \"camera-filled\",\n \"font_class\": \"camera-filled\",\n \"unicode\": \"e658\",\n \"unicode_decimal\": 58968\n }, {\n \"icon_id\": \"24855885\",\n \"name\": \"chat-filled\",\n \"font_class\": \"chat-filled\",\n \"unicode\": \"e659\",\n \"unicode_decimal\": 58969\n }, {\n \"icon_id\": \"24855886\",\n \"name\": \"camera\",\n \"font_class\": \"camera\",\n \"unicode\": \"e65a\",\n \"unicode_decimal\": 58970\n }, {\n \"icon_id\": \"24855887\",\n \"name\": \"circle\",\n \"font_class\": \"circle\",\n \"unicode\": \"e65b\",\n \"unicode_decimal\": 58971\n }, {\n \"icon_id\": \"24855888\",\n \"name\": \"checkmarkempty\",\n \"font_class\": \"checkmarkempty\",\n \"unicode\": \"e65c\",\n \"unicode_decimal\": 58972\n }, {\n \"icon_id\": \"24855889\",\n \"name\": \"chat\",\n \"font_class\": \"chat\",\n \"unicode\": \"e65d\",\n \"unicode_decimal\": 58973\n }, {\n \"icon_id\": \"24855890\",\n \"name\": \"circle-filled\",\n \"font_class\": \"circle-filled\",\n \"unicode\": \"e65e\",\n \"unicode_decimal\": 58974\n }, {\n \"icon_id\": \"24855891\",\n \"name\": \"flag\",\n \"font_class\": \"flag\",\n \"unicode\": \"e65f\",\n \"unicode_decimal\": 58975\n }, {\n \"icon_id\": \"24855892\",\n \"name\": \"flag-filled\",\n \"font_class\": \"flag-filled\",\n \"unicode\": \"e660\",\n \"unicode_decimal\": 58976\n }, {\n \"icon_id\": \"24855893\",\n \"name\": \"gear-filled\",\n \"font_class\": \"gear-filled\",\n \"unicode\": \"e661\",\n \"unicode_decimal\": 58977\n }, {\n \"icon_id\": \"24855894\",\n \"name\": \"home\",\n \"font_class\": \"home\",\n \"unicode\": \"e662\",\n \"unicode_decimal\": 58978\n }, {\n \"icon_id\": \"24855895\",\n \"name\": \"home-filled\",\n \"font_class\": \"home-filled\",\n \"unicode\": \"e663\",\n \"unicode_decimal\": 58979\n }, {\n \"icon_id\": \"24855896\",\n \"name\": \"gear\",\n \"font_class\": \"gear\",\n \"unicode\": \"e664\",\n \"unicode_decimal\": 58980\n }, {\n \"icon_id\": \"24855897\",\n \"name\": \"smallcircle-filled\",\n \"font_class\": \"smallcircle-filled\",\n \"unicode\": \"e665\",\n \"unicode_decimal\": 58981\n }, {\n \"icon_id\": \"24855898\",\n \"name\": \"map-filled\",\n \"font_class\": \"map-filled\",\n \"unicode\": \"e666\",\n \"unicode_decimal\": 58982\n }, {\n \"icon_id\": \"24855899\",\n \"name\": \"map\",\n \"font_class\": \"map\",\n \"unicode\": \"e667\",\n \"unicode_decimal\": 58983\n }, {\n \"icon_id\": \"24855825\",\n \"name\": \"refresh-filled\",\n \"font_class\": \"refresh-filled\",\n \"unicode\": \"e656\",\n \"unicode_decimal\": 58966\n }, {\n \"icon_id\": \"24855826\",\n \"name\": \"refresh\",\n \"font_class\": \"refresh\",\n \"unicode\": \"e657\",\n \"unicode_decimal\": 58967\n }, {\n \"icon_id\": \"24855808\",\n \"name\": \"cloud-upload\",\n \"font_class\": \"cloud-upload\",\n \"unicode\": \"e645\",\n \"unicode_decimal\": 58949\n }, {\n \"icon_id\": \"24855809\",\n \"name\": \"cloud-download-filled\",\n \"font_class\": \"cloud-download-filled\",\n \"unicode\": \"e646\",\n \"unicode_decimal\": 58950\n }, {\n \"icon_id\": \"24855810\",\n \"name\": \"cloud-download\",\n \"font_class\": \"cloud-download\",\n \"unicode\": \"e647\",\n \"unicode_decimal\": 58951\n }, {\n \"icon_id\": \"24855811\",\n \"name\": \"cloud-upload-filled\",\n \"font_class\": \"cloud-upload-filled\",\n \"unicode\": \"e648\",\n \"unicode_decimal\": 58952\n }, {\n \"icon_id\": \"24855813\",\n \"name\": \"redo\",\n \"font_class\": \"redo\",\n \"unicode\": \"e64a\",\n \"unicode_decimal\": 58954\n }, {\n \"icon_id\": \"24855814\",\n \"name\": \"images-filled\",\n \"font_class\": \"images-filled\",\n \"unicode\": \"e64b\",\n \"unicode_decimal\": 58955\n }, {\n \"icon_id\": \"24855815\",\n \"name\": \"undo-filled\",\n \"font_class\": \"undo-filled\",\n \"unicode\": \"e64c\",\n \"unicode_decimal\": 58956\n }, {\n \"icon_id\": \"24855816\",\n \"name\": \"more\",\n \"font_class\": \"more\",\n \"unicode\": \"e64d\",\n \"unicode_decimal\": 58957\n }, {\n \"icon_id\": \"24855817\",\n \"name\": \"more-filled\",\n \"font_class\": \"more-filled\",\n \"unicode\": \"e64e\",\n \"unicode_decimal\": 58958\n }, {\n \"icon_id\": \"24855818\",\n \"name\": \"undo\",\n \"font_class\": \"undo\",\n \"unicode\": \"e64f\",\n \"unicode_decimal\": 58959\n }, {\n \"icon_id\": \"24855819\",\n \"name\": \"images\",\n \"font_class\": \"images\",\n \"unicode\": \"e650\",\n \"unicode_decimal\": 58960\n }, {\n \"icon_id\": \"24855821\",\n \"name\": \"paperclip\",\n \"font_class\": \"paperclip\",\n \"unicode\": \"e652\",\n \"unicode_decimal\": 58962\n }, {\n \"icon_id\": \"24855822\",\n \"name\": \"settings\",\n \"font_class\": \"settings\",\n \"unicode\": \"e653\",\n \"unicode_decimal\": 58963\n }, {\n \"icon_id\": \"24855823\",\n \"name\": \"search\",\n \"font_class\": \"search\",\n \"unicode\": \"e654\",\n \"unicode_decimal\": 58964\n }, {\n \"icon_id\": \"24855824\",\n \"name\": \"redo-filled\",\n \"font_class\": \"redo-filled\",\n \"unicode\": \"e655\",\n \"unicode_decimal\": 58965\n }, {\n \"icon_id\": \"24841702\",\n \"name\": \"list\",\n \"font_class\": \"list\",\n \"unicode\": \"e644\",\n \"unicode_decimal\": 58948\n }, {\n \"icon_id\": \"24841489\",\n \"name\": \"mail-open-filled\",\n \"font_class\": \"mail-open-filled\",\n \"unicode\": \"e63a\",\n \"unicode_decimal\": 58938\n }, {\n \"icon_id\": \"24841491\",\n \"name\": \"hand-thumbsdown-filled\",\n \"font_class\": \"hand-down-filled\",\n \"unicode\": \"e63c\",\n \"unicode_decimal\": 58940\n }, {\n \"icon_id\": \"24841492\",\n \"name\": \"hand-thumbsdown\",\n \"font_class\": \"hand-down\",\n \"unicode\": \"e63d\",\n \"unicode_decimal\": 58941\n }, {\n \"icon_id\": \"24841493\",\n \"name\": \"hand-thumbsup-filled\",\n \"font_class\": \"hand-up-filled\",\n \"unicode\": \"e63e\",\n \"unicode_decimal\": 58942\n }, {\n \"icon_id\": \"24841494\",\n \"name\": \"hand-thumbsup\",\n \"font_class\": \"hand-up\",\n \"unicode\": \"e63f\",\n \"unicode_decimal\": 58943\n }, {\n \"icon_id\": \"24841496\",\n \"name\": \"heart-filled\",\n \"font_class\": \"heart-filled\",\n \"unicode\": \"e641\",\n \"unicode_decimal\": 58945\n }, {\n \"icon_id\": \"24841498\",\n \"name\": \"mail-open\",\n \"font_class\": \"mail-open\",\n \"unicode\": \"e643\",\n \"unicode_decimal\": 58947\n }, {\n \"icon_id\": \"24841488\",\n \"name\": \"heart\",\n \"font_class\": \"heart\",\n \"unicode\": \"e639\",\n \"unicode_decimal\": 58937\n }, {\n \"icon_id\": \"24839963\",\n \"name\": \"loop\",\n \"font_class\": \"loop\",\n \"unicode\": \"e633\",\n \"unicode_decimal\": 58931\n }, {\n \"icon_id\": \"24839866\",\n \"name\": \"pulldown\",\n \"font_class\": \"pulldown\",\n \"unicode\": \"e632\",\n \"unicode_decimal\": 58930\n }, {\n \"icon_id\": \"24813798\",\n \"name\": \"scan\",\n \"font_class\": \"scan\",\n \"unicode\": \"e62a\",\n \"unicode_decimal\": 58922\n }, {\n \"icon_id\": \"24813786\",\n \"name\": \"bars\",\n \"font_class\": \"bars\",\n \"unicode\": \"e627\",\n \"unicode_decimal\": 58919\n }, {\n \"icon_id\": \"24813788\",\n \"name\": \"cart-filled\",\n \"font_class\": \"cart-filled\",\n \"unicode\": \"e629\",\n \"unicode_decimal\": 58921\n }, {\n \"icon_id\": \"24813790\",\n \"name\": \"checkbox\",\n \"font_class\": \"checkbox\",\n \"unicode\": \"e62b\",\n \"unicode_decimal\": 58923\n }, {\n \"icon_id\": \"24813791\",\n \"name\": \"checkbox-filled\",\n \"font_class\": \"checkbox-filled\",\n \"unicode\": \"e62c\",\n \"unicode_decimal\": 58924\n }, {\n \"icon_id\": \"24813794\",\n \"name\": \"shop\",\n \"font_class\": \"shop\",\n \"unicode\": \"e62f\",\n \"unicode_decimal\": 58927\n }, {\n \"icon_id\": \"24813795\",\n \"name\": \"headphones\",\n \"font_class\": \"headphones\",\n \"unicode\": \"e630\",\n \"unicode_decimal\": 58928\n }, {\n \"icon_id\": \"24813796\",\n \"name\": \"cart\",\n \"font_class\": \"cart\",\n \"unicode\": \"e631\",\n \"unicode_decimal\": 58929\n }]\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL2ljb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ2IsSUFBSSxFQUFFLFNBQVM7RUFDZixNQUFNLEVBQUUsVUFBVTtFQUNsQixhQUFhLEVBQUUsVUFBVTtFQUN6QixpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLGFBQWEsRUFBRSxFQUFFO0VBQ2pCLFFBQVEsRUFBRSxDQUNSO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsUUFBUTtJQUN0QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxj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QWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFdBQVc7SUFDekIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lB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dCBkZWZhdWx0IHtcbiAgXCJpZFwiOiBcIjI4NTI2MzdcIixcbiAgXCJuYW1lXCI6IFwidW5pdWnlm77moIflupNcIixcbiAgXCJmb250X2ZhbWlseVwiOiBcInVuaWljb25zXCIsXG4gIFwiY3NzX3ByZWZpeF90ZXh0XCI6IFwidW5pdWktXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgXCJnbHlwaHNcIjogW1xuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI1MDI3MDQ5XCIsXG4gICAgICBcIm5hbWVcIjogXCJ5YW5zZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29sb3JcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAyNzA0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwid2FsbGV0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ3YWxsZXRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAxNTcyMFwiLFxuICAgICAgXCJuYW1lXCI6IFwic2V0dGluZ3MtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzZXR0aW5ncy1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2VcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAxNTQzNFwiLFxuICAgICAgXCJuYW1lXCI6IFwic2hpbWluZ3JlbnpoZW5nLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXV0aC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2NcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzNDI0NlwiLFxuICAgICAgXCJuYW1lXCI6IFwic2hvcC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNob3AtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzQxNTlcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YWZmLWZpbGxlZC0wMVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic3RhZmYtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjFcIixcbiAgICAgIFwibmFtZVwiOiBcIlZJUC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpcC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MlwiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c19jaXJjbGVfZmlsbFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGx1cy1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiZm9sZGVyX2FkZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbGRlci1hZGQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjRcIixcbiAgICAgIFwibmFtZVwiOiBcInlhbnNlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29sb3ItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjVcIixcbiAgICAgIFwibmFtZVwiOiBcInR1bmUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ0dW5lLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjYVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwODJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU1XCIsXG4gICAgICBcIm5hbWVcIjogXCJhLXJpbGlkYWthLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FsZW5kYXItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmMwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NTZcIixcbiAgICAgIFwibmFtZVwiOiBcIm5vdGlmaWNhdGlvbi1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm5vdGlmaWNhdGlvbi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDczXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ1N1wiLFxuICAgICAgXCJuYW1lXCI6IFwid2FsbGV0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwid2FsbGV0LWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjMlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU4XCIsXG4gICAgICBcIm5hbWVcIjogXCJwYWloYW5nYmFuZy1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1lZGFsLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjM1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU5XCIsXG4gICAgICBcIm5hbWVcIjogXCJnaWZ0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2lmdC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzRcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiZmlyZS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZpcmUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3N1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjgwMDFcIixcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2hlbXB0eVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVmcmVzaGVtcHR5XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjY4NTNcIixcbiAgICAgIFwibmFtZVwiOiBcImxvY2F0aW9uLWVsbGlwc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2F0aW9uLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhZlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTI2NzM1XCIsXG4gICAgICBcIm5hbWVcIjogXCJwZXJzb24tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwZXJzb24tZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjlkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjY3MDNcIixcbiAgICAgIFwibmFtZVwiOiBcInBlcnNvbmFkZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBlcnNvbmFkZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OThcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1MVwiLFxuICAgICAgXCJuYW1lXCI6IFwiYmFja1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYmFja1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiOVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzUyXCIsXG4gICAgICBcIm5hbWVcIjogXCJmb3J3YXJkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmb3J3YXJkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTNcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbnJpZ2h0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvdy1yaWdodFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiYlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjdcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzUzXCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW5yaWdodFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3d0aGlucmlnaHRcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmJcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY3XG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1NFwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d0aGlubGVmdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3ctbGVmdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiY1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjhcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU0XCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXG5cdFx0ICBcInVuaWNvZGVcIjogXCJlNmJjXCIsXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2OFxuXHRcdH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTVcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbnVwXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvdy11cFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjlcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU1XCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW51cFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3d0aGludXBcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmRcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY5XG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d0aGluZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3ctZG93blwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzBcbiAgICB9LHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU2XCIsXG4gICAgICBcIm5hbWVcIjogXCJhcnJvd3RoaW5kb3duXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5kb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDlcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYm90dG9tXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxuICAgIH0se1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDlcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3dkb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDZcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93cmlnaHRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJpZ2h0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MVxuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDZcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93cmlnaHRcIixcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93cmlnaHRcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YjVcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDYxXG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM0N1wiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d1cFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidG9wXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MlxuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDdcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93dXBcIixcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93dXBcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YjZcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDYyXG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3dsZWZ0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsZWZ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2M1xuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDhcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93bGVmdFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3dsZWZ0XCIsXG5cdFx0ICBcInVuaWNvZGVcIjogXCJlNmI3XCIsXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2M1xuXHRcdH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzRcIixcbiAgICAgIFwibmFtZVwiOiBcImV5ZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZXllXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzVcIixcbiAgICAgIFwibmFtZVwiOiBcImV5ZS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzNlwiLFxuICAgICAgXCJuYW1lXCI6IFwiZXllLXNsYXNoXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJleWUtc2xhc2hcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzN1wiLFxuICAgICAgXCJuYW1lXCI6IFwiZXllLXNsYXNoLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZXllLXNsYXNoLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiNFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzA1XCIsXG4gICAgICBcIm5hbWVcIjogXCJpbmZvLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mby1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzI5OVwiLFxuICAgICAgXCJuYW1lXCI6IFwicmVsb2FkLTAxXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJyZWxvYWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWljX3NsYXNoX2ZpbGxcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1pY29mZi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjBcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE2NVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwLXBpbi1lbGxpcHNlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXAtcGluLWVsbGlwc2VcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwLXBpblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWFwLXBpblwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMTY3XCIsXG4gICAgICBcIm5hbWVcIjogXCJsb2NhdGlvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibG9jYXRpb25cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzA2NFwiLFxuICAgICAgXCJuYW1lXCI6IFwic3RhcmhhbGZcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXJoYWxmXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgzXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMwNjVcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YXJcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXJcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzA2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwic3Rhci1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDZcIixcbiAgICAgIFwibmFtZVwiOiBcImEtcmlsaWRha2FcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNhbGVuZGFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmEwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDdcIixcbiAgICAgIFwibmFtZVwiOiBcImZpcmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZpcmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwicGFpaGFuZ2JhbmdcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1lZGFsXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmEyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDlcIixcbiAgICAgIFwibmFtZVwiOiBcImZvbnRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbnRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiZ2lmdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2lmdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhNFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjUxXCIsXG4gICAgICBcIm5hbWVcIjogXCJsaW5rXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsaW5rXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTJcIixcbiAgICAgIFwibmFtZVwiOiBcIm5vdGlmaWNhdGlvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibm90aWZpY2F0aW9uXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTNcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YWZmXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzdGFmZlwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhN1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU0XCIsXG4gICAgICBcIm5hbWVcIjogXCJWSVBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpcFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhOFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU1XCIsXG4gICAgICBcIm5hbWVcIjogXCJmb2xkZXJfYWRkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmb2xkZXItYWRkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTZcIixcbiAgICAgIFwibmFtZVwiOiBcInR1bmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInR1bmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1N1wiLFxuICAgICAgXCJuYW1lXCI6IFwic2hpbWluZ3JlbnpoZW5nXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhdXRoXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmFiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA1MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjVcIixcbiAgICAgIFwibmFtZVwiOiBcInBlcnNvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGVyc29uXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjk5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjZcIixcbiAgICAgIFwibmFtZVwiOiBcImVtYWlsLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZW1haWwtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjlhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjdcIixcbiAgICAgIFwibmFtZVwiOiBcInBob25lLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGhvbmUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjliXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjhcIixcbiAgICAgIFwibmFtZVwiOiBcInBob25lXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwaG9uZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5Y1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTcwXCIsXG4gICAgICBcIm5hbWVcIjogXCJlbWFpbFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZW1haWxcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OWVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU3MVwiLFxuICAgICAgXCJuYW1lXCI6IFwicGVyc29uYWRkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwZXJzb25hZGRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OWZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU1OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJveGVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJveGVzLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5MlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTU5XCIsXG4gICAgICBcIm5hbWVcIjogXCJjb250YWN0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjb250YWN0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkzXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjBcIixcbiAgICAgIFwibmFtZVwiOiBcImNoYXRidWJibGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0YnViYmxlLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTYxXCIsXG4gICAgICBcIm5hbWVcIjogXCJjb250YWN0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29udGFjdC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OTVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDI5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJveGVzXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0Ym94ZXNcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OTZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDMwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJ1YmJsZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJ1YmJsZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5N1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzFcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjkwXCIsXG4gICAgICBcIm5hbWVcIjogXCJ1cGxvYWQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1cGxvYWQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyMlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTJcIixcbiAgICAgIFwibmFtZVwiOiBcInVwbG9hZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidXBsb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTNcIixcbiAgICAgIFwibmFtZVwiOiBcIndlaXhpblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwid2VpeGluXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzRcIixcbiAgICAgIFwibmFtZVwiOiBcImNvbXBvc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNvbXBvc2VcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDA3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3NVwiLFxuICAgICAgXCJuYW1lXCI6IFwicXFcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInFxXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzZcIixcbiAgICAgIFwibmFtZVwiOiBcImRvd25sb2FkLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZG93bmxvYWQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwOVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzdcIixcbiAgICAgIFwibmFtZVwiOiBcInBlbmd5b3VxdWFuXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJweXFcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDEwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3OVwiLFxuICAgICAgXCJuYW1lXCI6IFwic291bmRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNvdW5kXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg0XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODBcIixcbiAgICAgIFwibmFtZVwiOiBcInRyYXNoLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidHJhc2gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODFcIixcbiAgICAgIFwibmFtZVwiOiBcInNvdW5kLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic291bmQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODJcIixcbiAgICAgIFwibmFtZVwiOiBcInRyYXNoXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ0cmFzaFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4N1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg0XCIsXG4gICAgICBcIm5hbWVcIjogXCJ2aWRlb2NhbS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpZGVvY2FtLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg1XCIsXG4gICAgICBcIm5hbWVcIjogXCJzcGlubmVyLWN5Y2xlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzcGlubmVyLWN5Y2xlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODZcIixcbiAgICAgIFwibmFtZVwiOiBcIndlaWJvXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ3ZWlib1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJ2aWRlb2NhbVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidmlkZW9jYW1cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDIwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiZG93bmxvYWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImRvd25sb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyMVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDFcIixcbiAgICAgIFwibmFtZVwiOiBcImhlbHBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhlbHBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwMlwiLFxuICAgICAgXCJuYW1lXCI6IFwibmF2aWdhdGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJuYXZpZ2F0ZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2FcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwM1wiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c2VtcHR5XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwbHVzZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2JcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwNFwiLFxuICAgICAgXCJuYW1lXCI6IFwic21hbGxjaXJjbGVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNtYWxsY2lyY2xlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdjXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDVcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pbnVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWludXMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDZcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pY29mZlwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljb2ZmXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1ODhcIixcbiAgICAgIFwibmFtZVwiOiBcImNsb3NlZW1wdHlcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3NlZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xlYXJcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsZWFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTBcIixcbiAgICAgIFwibmFtZVwiOiBcIm5hdmlnYXRlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJuYXZpZ2F0ZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2ZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTkxXCIsXG4gICAgICBcIm5hbWVcIjogXCJtaW51c1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWludXNcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaW1hZ2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImltYWdlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTNcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pY1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTRcIixcbiAgICAgIFwibmFtZVwiOiBcInBhcGVycGxhbmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBhcGVycGxhbmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3NlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjczXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTZcIixcbiAgICAgIFwibmFtZVwiOiBcImhlbHAtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWxwLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTk3XCIsXG4gICAgICBcIm5hbWVcIjogXCJwbHVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGFwZXJwbGFuZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5OFwiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGx1c1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3NlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OThcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTk5XCIsXG4gICAgICBcIm5hbWVcIjogXCJtaWMtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtaWMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDBcIixcbiAgICAgIFwibmFtZVwiOiBcImltYWdlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW1hZ2UtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwMFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU5MDBcIixcbiAgICAgIFwibmFtZVwiOiBcImxvY2tlZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2tlZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTkwMVwiLFxuICAgICAgXCJuYW1lXCI6IFwiaW5mb1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mb1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1OTAzXCIsXG4gICAgICBcIm5hbWVcIjogXCJsb2NrZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2tlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg0XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYW1lcmEtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjYW1lcmEtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2OFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4ODVcIixcbiAgICAgIFwibmFtZVwiOiBcImNoYXQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0LWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg2XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYW1lcmFcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNhbWVyYVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1YVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg3XCIsXG4gICAgICBcIm5hbWVcIjogXCJjaXJjbGVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNpcmNsZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJjaGVja21hcmtlbXB0eVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2ttYXJrZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTcyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1ZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODkwXCIsXG4gICAgICBcIm5hbWVcIjogXCJjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjVlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImZsYWdcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZsYWdcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTc1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiZmxhZy1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZsYWctZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjYwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTNcIixcbiAgICAgIFwibmFtZVwiOiBcImdlYXItZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnZWFyLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2MVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk0XCIsXG4gICAgICBcIm5hbWVcIjogXCJob21lXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJob21lXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjYyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTVcIixcbiAgICAgIFwibmFtZVwiOiBcImhvbWUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJob21lLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2M1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk2XCIsXG4gICAgICBcIm5hbWVcIjogXCJnZWFyXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnZWFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY0XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTdcIixcbiAgICAgIFwibmFtZVwiOiBcInNtYWxsY2lyY2xlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic21hbGxjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OThcIixcbiAgICAgIFwibmFtZVwiOiBcIm1hcC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1hcC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5OVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgyNVwiLFxuICAgICAgXCJuYW1lXCI6IFwicmVmcmVzaC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlZnJlc2gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjZcIixcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlZnJlc2hcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgwOFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtdXBsb2FkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC11cGxvYWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgwOVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtZG93bmxvYWQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC1kb3dubG9hZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxMFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtZG93bmxvYWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3VkLWRvd25sb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjQ3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTFcIixcbiAgICAgIFwibmFtZVwiOiBcImNsb3VkLXVwbG9hZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3VkLXVwbG9hZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxM1wiLFxuICAgICAgXCJuYW1lXCI6IFwicmVkb1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVkb1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0YVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE0XCIsXG4gICAgICBcIm5hbWVcIjogXCJpbWFnZXMtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJpbWFnZXMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTVcIixcbiAgICAgIFwibmFtZVwiOiBcInVuZG8tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1bmRvLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0Y1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE2XCIsXG4gICAgICBcIm5hbWVcIjogXCJtb3JlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtb3JlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1N1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTdcIixcbiAgICAgIFwibmFtZVwiOiBcIm1vcmUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtb3JlLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0ZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NThcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE4XCIsXG4gICAgICBcIm5hbWVcIjogXCJ1bmRvXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1bmRvXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTlcIixcbiAgICAgIFwibmFtZVwiOiBcImltYWdlc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW1hZ2VzXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjFcIixcbiAgICAgIFwibmFtZVwiOiBcInBhcGVyY2xpcFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGFwZXJjbGlwXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjJcIixcbiAgICAgIFwibmFtZVwiOiBcInNldHRpbmdzXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzZXR0aW5nc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1M1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODIzXCIsXG4gICAgICBcIm5hbWVcIjogXCJzZWFyY2hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNlYXJjaFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODI0XCIsXG4gICAgICBcIm5hbWVcIjogXCJyZWRvLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVkby1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTcwMlwiLFxuICAgICAgXCJuYW1lXCI6IFwibGlzdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibGlzdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDg5XCIsXG4gICAgICBcIm5hbWVcIjogXCJtYWlsLW9wZW4tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW4tZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzZG93bi1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtZG93bi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2NcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGFuZC10aHVtYnNkb3duXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoYW5kLWRvd25cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2RcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiaGFuZC10aHVtYnN1cC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtdXAtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0OTRcIixcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzdXBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtdXBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhcnQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWFydC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5OFwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFpbC1vcGVuXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW5cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ4OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhcnRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhlYXJ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjM5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Mzk5NjNcIixcbiAgICAgIFwibmFtZVwiOiBcImxvb3BcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvb3BcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MzNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgzOTg2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwicHVsbGRvd25cIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInB1bGxkb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjMyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzMFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OThcIixcbiAgICAgIFwibmFtZVwiOiBcInNjYW5cIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNjYW5cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MmFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc4NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiYmFyc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYmFyc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyN1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYXJ0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FydC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MjlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc5MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hlY2tib3hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNoZWNrYm94XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImNoZWNrYm94LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2tib3gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJjXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTRcIixcbiAgICAgIFwibmFtZVwiOiBcInNob3BcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNob3BcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MmZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhZHBob25lc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGVhZHBob25lc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYzMFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzk2XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYXJ0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjYXJ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjMxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyOVxuICAgIH1cbiAgXVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n");
- /***/ }),
- /* 23 */
- /*!****************************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***!
- \****************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=script&lang=js& */ 24);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFvQixDQUFnQiwybkJBQUcsRUFBQyIsImZpbGUiOiIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///23\n");
- /***/ }),
- /* 24 */
- /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***!
- \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/**\r\n * Easyinput 输入框\r\n * @description 此组件可以实现表单的输入与校验,包括 \"text\" 和 \"textarea\" 类型。\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=3455\r\n * @property {String}\tvalue\t输入内容\r\n * @property {String }\ttype\t输入框的类型(默认text) password/text/textarea/..\r\n * \t@value text\t\t\t文本输入键盘\r\n * \t@value textarea\t多行文本输入键盘\r\n * \t@value password\t密码输入键盘\r\n * \t@value number\t\t数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式\r\n * \t@value idcard\t\t身份证输入键盘,信、支付宝、百度、QQ小程序\r\n * \t@value digit\t\t带小数点的数字键盘\t,App的nvue页面、微信、支付宝、百度、头条、QQ小程序支持\r\n * @property {Boolean}\tclearable\t是否显示右侧清空内容的图标控件,点击可清空输入框内容(默认true)\r\n * @property {Boolean}\tautoHeight\t是否自动增高输入区域,type为textarea时有效(默认true)\r\n * @property {String }\tplaceholder\t输入框的提示文字\r\n * @property {String }\tplaceholderStyle\tplaceholder的样式(内联样式,字符串),如\"color: #ddd\"\r\n * @property {Boolean}\tfocus\t是否自动获得焦点(默认false)\r\n * @property {Boolean}\tdisabled\t是否禁用(默认false)\r\n * @property {Number }\tmaxlength\t最大输入长度,设置为 -1 的时候不限制最大长度(默认140)\r\n * @property {String }\tconfirmType\t设置键盘右下角按钮的文字,仅在type=\"text\"时生效(默认done)\r\n * @property {Number }\tclearSize\t清除图标的大小,单位px(默认15)\r\n * @property {String}\tprefixIcon\t输入框头部图标\r\n * @property {String}\tsuffixIcon\t输入框尾部图标\r\n * @property {String}\tprimaryColor\t设置主题色(默认#2979ff)\r\n * @property {Boolean}\ttrim\t是否自动去除两端的空格\r\n * @value both\t去除两端空格\r\n * @value left\t去除左侧空格\r\n * @value right\t去除右侧空格\r\n * @value start\t去除左侧空格\r\n * @value end\t\t去除右侧空格\r\n * @value all\t\t去除全部空格\r\n * @value none\t不去除空格\r\n * @property {Boolean}\tinputBorder\t是否显示input输入框的边框(默认true)\r\n * @property {Boolean}\tpasswordIcon\ttype=password时是否显示小眼睛图标\r\n * @property {Object}\tstyles\t自定义颜色\r\n * @event {Function}\tinput\t输入框内容发生变化时触发\r\n * @event {Function}\tfocus\t输入框获得焦点时触发\r\n * @event {Function}\tblur\t输入框失去焦点时触发\r\n * @event {Function}\tconfirm\t点击完成按钮时触发\r\n * @event {Function}\ticonClick\t点击图标时触发\r\n * @slot prefixIcon 输入框头部插槽\r\n * @slot suffixIcon 输入框尾部插槽\r\n * @example <uni-easyinput v-model=\"mobile\"></uni-easyinput>\r\n */\nfunction obj2strClass(obj) {\n var classess = \"\";\n for (var key in obj) {\n var val = obj[key];\n if (val) {\n classess += \"\".concat(key, \" \");\n }\n }\n return classess;\n}\nfunction obj2strStyle(obj) {\n var style = \"\";\n for (var key in obj) {\n var val = obj[key];\n style += \"\".concat(key, \":\").concat(val, \";\");\n }\n return style;\n}\nvar _default2 = {\n name: \"uni-easyinput\",\n emits: [\"click\", \"iconClick\", \"update:modelValue\", \"input\", \"focus\", \"blur\", \"confirm\", \"clear\", \"eyes\", \"change\"],\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n options: {\n virtualHost: true\n },\n inject: {\n form: {\n from: \"uniForm\",\n default: null\n },\n formItem: {\n from: \"uniFormItem\",\n default: null\n }\n },\n props: {\n name: String,\n value: [Number, String],\n modelValue: [Number, String],\n type: {\n type: String,\n default: \"text\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n autoHeight: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: \" \"\n },\n placeholderStyle: String,\n focus: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n maxlength: {\n type: [Number, String],\n default: 140\n },\n confirmType: {\n type: String,\n default: \"done\"\n },\n clearSize: {\n type: [Number, String],\n default: 24\n },\n inputBorder: {\n type: Boolean,\n default: true\n },\n prefixIcon: {\n type: String,\n default: \"\"\n },\n suffixIcon: {\n type: String,\n default: \"\"\n },\n trim: {\n type: [Boolean, String],\n default: true\n },\n passwordIcon: {\n type: Boolean,\n default: true\n },\n primaryColor: {\n type: String,\n default: \"#2979ff\"\n },\n styles: {\n type: Object,\n default: function _default() {\n return {\n color: \"#333\",\n disableColor: \"#F7F6F6\",\n borderColor: \"#e5e5e5\"\n };\n }\n },\n errorMessage: {\n type: [String, Boolean],\n default: \"\"\n }\n },\n data: function data() {\n return {\n focused: false,\n val: \"\",\n showMsg: \"\",\n border: false,\n isFirstBorder: false,\n showClearIcon: false,\n showPassword: false,\n focusShow: false,\n localMsg: \"\"\n };\n },\n computed: {\n // 输入框内是否有值\n isVal: function isVal() {\n var val = this.val;\n // fixed by mehaotian 处理值为0的情况,字符串0不在处理范围\n if (val || val === 0) {\n return true;\n }\n return false;\n },\n msg: function msg() {\n // console.log('computed', this.form, this.formItem);\n // if (this.form) {\n // \treturn this.errorMessage || this.formItem.errMsg;\n // }\n // TODO 处理头条 formItem 中 errMsg 不更新的问题\n return this.localMsg || this.errorMessage;\n },\n // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值\n inputMaxlength: function inputMaxlength() {\n return Number(this.maxlength);\n },\n // 处理外层样式的style\n boxStyle: function boxStyle() {\n return \"color:\".concat(this.inputBorder && this.msg ? \"#e43d33\" : this.styles.color, \";\");\n },\n // input 内容的类和样式处理\n inputContentClass: function inputContentClass() {\n return obj2strClass({\n \"is-input-border\": this.inputBorder,\n \"is-input-error-border\": this.inputBorder && this.msg,\n \"is-textarea\": this.type === \"textarea\",\n \"is-disabled\": this.disabled\n });\n },\n inputContentStyle: function inputContentStyle() {\n var focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;\n var borderColor = this.inputBorder && this.msg ? \"#dd524d\" : focusColor;\n return obj2strStyle({\n \"border-color\": borderColor || \"#e5e5e5\",\n \"background-color\": this.disabled ? this.styles.disableColor : this.styles.backgroundColor\n });\n },\n // input右侧样式\n inputStyle: function inputStyle() {\n var paddingRight = this.type === \"password\" || this.clearable || this.prefixIcon ? \"\" : \"10px\";\n return obj2strStyle({\n \"padding-right\": paddingRight,\n \"padding-left\": this.prefixIcon ? \"\" : \"10px\"\n });\n }\n },\n watch: {\n value: function value(newVal) {\n this.val = newVal;\n },\n modelValue: function modelValue(newVal) {\n this.val = newVal;\n },\n focus: function focus(newVal) {\n var _this = this;\n this.$nextTick(function () {\n _this.focused = _this.focus;\n _this.focusShow = _this.focus;\n });\n }\n },\n created: function created() {\n var _this2 = this;\n this.init();\n // TODO 处理头条vue3 computed 不监听 inject 更改的问题(formItem.errMsg)\n if (this.form && this.formItem) {\n this.$watch(\"formItem.errMsg\", function (newVal) {\n _this2.localMsg = newVal;\n });\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n this.$nextTick(function () {\n _this3.focused = _this3.focus;\n _this3.focusShow = _this3.focus;\n });\n },\n methods: {\n /**\r\n * 初始化变量值\r\n */\n init: function init() {\n if (this.value || this.value === 0) {\n this.val = this.value;\n } else if (this.modelValue || this.modelValue === 0) {\n this.val = this.modelValue;\n } else {\n this.val = null;\n }\n },\n /**\r\n * 点击图标时触发\r\n * @param {Object} type\r\n */\n onClickIcon: function onClickIcon(type) {\n this.$emit(\"iconClick\", type);\n },\n /**\r\n * 显示隐藏内容,密码框时生效\r\n */\n onEyes: function onEyes() {\n this.showPassword = !this.showPassword;\n this.$emit(\"eyes\", this.showPassword);\n },\n /**\r\n * 输入时触发\r\n * @param {Object} event\r\n */\n onInput: function onInput(event) {\n var value = event.detail.value;\n // 判断是否去除空格\n if (this.trim) {\n if (typeof this.trim === \"boolean\" && this.trim) {\n value = this.trimStr(value);\n }\n if (typeof this.trim === \"string\") {\n value = this.trimStr(value, this.trim);\n }\n }\n if (this.errMsg) this.errMsg = \"\";\n this.val = value;\n // TODO 兼容 vue2\n this.$emit(\"input\", value);\n // TODO 兼容 vue3\n this.$emit(\"update:modelValue\", value);\n },\n /**\r\n * 外部调用方法\r\n * 获取焦点时触发\r\n * @param {Object} event\r\n */\n onFocus: function onFocus() {\n var _this4 = this;\n this.$nextTick(function () {\n _this4.focused = true;\n });\n this.$emit(\"focus\", null);\n },\n _Focus: function _Focus(event) {\n this.focusShow = true;\n this.$emit(\"focus\", event);\n },\n /**\r\n * 外部调用方法\r\n * 失去焦点时触发\r\n * @param {Object} event\r\n */\n onBlur: function onBlur() {\n this.focused = false;\n this.$emit(\"focus\", null);\n },\n _Blur: function _Blur(event) {\n var value = event.detail.value;\n this.focusShow = false;\n this.$emit(\"blur\", event);\n // 根据类型返回值,在event中获取的值理论上讲都是string\n this.$emit(\"change\", this.val);\n // 失去焦点时参与表单校验\n if (this.form && this.formItem) {\n var validateTrigger = this.form.validateTrigger;\n if (validateTrigger === \"blur\") {\n this.formItem.onFieldChange();\n }\n }\n },\n /**\r\n * 按下键盘的发送键\r\n * @param {Object} e\r\n */\n onConfirm: function onConfirm(e) {\n this.$emit(\"confirm\", this.val);\n this.$emit(\"change\", this.val);\n },\n /**\r\n * 清理内容\r\n * @param {Object} event\r\n */\n onClear: function onClear(event) {\n this.val = \"\";\n // TODO 兼容 vue2\n this.$emit(\"input\", \"\");\n // TODO 兼容 vue2\n // TODO 兼容 vue3\n this.$emit(\"update:modelValue\", \"\");\n // 点击叉号触发\n this.$emit(\"clear\");\n },\n /**\r\n * 去除空格\r\n */\n trimStr: function trimStr(str) {\n var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"both\";\n if (pos === \"both\") {\n return str.trim();\n } else if (pos === \"left\") {\n return str.trimLeft();\n } else if (pos === \"right\") {\n return str.trimRight();\n } else if (pos === \"start\") {\n return str.trimStart();\n } else if (pos === \"end\") {\n return str.trimEnd();\n } else if (pos === \"all\") {\n return str.replace(/\\s+/g, \"\");\n } else if (pos === \"none\") {\n return str;\n }\n return str;\n }\n }\n};\nexports.default = _default2;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWVhc3lpbnB1dC9jb21wb25lbnRzL3VuaS1lYXN5aW5wdXQvdW5pLWVhc3lpbnB1dC52dWUiXSwibmFtZXMiOlsiY2xhc3Nlc3MiLCJzdHlsZSIsIm5hbWUiLCJlbWl0cyIsIm1vZGVsIiwicHJvcCIsImV2ZW50Iiwib3B0aW9ucyIsInZpcnR1YWxIb3N0IiwiaW5qZWN0IiwiZm9ybSIsImZyb20iLCJkZWZhdWx0IiwiZm9ybUl0ZW0iLCJwcm9wcyIsInZhbHVlIiwibW9kZWxWYWx1ZSIsInR5cGUiLCJjbGVhcmFibGUiLCJhdXRvSGVpZ2h0IiwicGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlclN0eWxlIiwiZm9jdXMiLCJkaXNhYmxlZCIsIm1heGxlbmd0aCIsImNvbmZpcm1UeXBlIiwiY2xlYXJTaXplIiwiaW5wdXRCb3JkZXIiLCJwcmVmaXhJY29uIiwic3VmZml4SWNvbiIsInRyaW0iLCJwYXNzd29yZEljb24iLCJwcmltYXJ5Q29sb3IiLCJzdHlsZXMiLCJjb2xvciIsImRpc2FibGVDb2xvciIsImJvcmRlckNvbG9yIiwiZXJyb3JNZXNzYWdlIiwiZGF0YSIsImZvY3VzZWQiLCJ2YWwiLCJzaG93TXNnIiwiYm9yZGVyIiwiaXNGaXJzdEJvcmRlciIsInNob3dDbGVhckljb24iLCJzaG93UGFzc3dvcmQiLCJmb2N1c1Nob3ciLCJsb2NhbE1zZyIsImNvbXB1dGVkIiwiaXNWYWwiLCJtc2ciLCJpbnB1dE1heGxlbmd0aCIsImJveFN0eWxlIiwiaW5wdXRDb250ZW50Q2xhc3MiLCJpbnB1dENvbnRlbnRTdHlsZSIsImlucHV0U3R5bGUiLCJ3YXRjaCIsImNyZWF0ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsImluaXQiLCJvbkNsaWNrSWNvbiIsIm9uRXllcyIsIm9uSW5wdXQiLCJvbkZvY3VzIiwiX0ZvY3VzIiwib25CbHVyIiwiX0JsdXIiLCJvbkNvbmZpcm0iLCJvbkNsZWFyIiwidHJpbVN0ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtJQUNBO0lBQ0E7TUFDQUE7SUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtJQUNBO0lBQ0FDO0VBQ0E7RUFDQTtBQUNBO0FBQUEsZ0JBQ0E7RUFDQUM7RUFDQUMsUUFDQSxTQUNBLGFBQ0EscUJBQ0EsU0FDQSxTQUNBLFFBQ0EsV0FDQSxTQUNBLFFBQ0EsU0FDQTtFQUNBQztJQUNBQztJQUNBQztFQUNBO0VBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0VBQ0E7RUFDQUU7SUFDQVo7SUFDQWE7SUFDQUM7SUFDQUM7TUFDQUE7TUFDQUw7SUFDQTtJQUNBTTtNQUNBRDtNQUNBTDtJQUNBO0lBQ0FPO01BQ0FGO01BQ0FMO0lBQ0E7SUFDQVE7TUFDQUg7TUFDQUw7SUFDQTtJQUNBUztJQUNBQztNQUNBTDtNQUNBTDtJQUNBO0lBQ0FXO01BQ0FOO01BQ0FMO0lBQ0E7SUFDQVk7TUFDQVA7TUFDQUw7SUFDQTtJQUNBYTtNQUNBUjtNQUNBTDtJQUNBO0lBQ0FjO01BQ0FUO01BQ0FMO0lBQ0E7SUFDQWU7TUFDQVY7TUFDQUw7SUFDQTtJQUNBZ0I7TUFDQVg7TUFDQUw7SUFDQTtJQUNBaUI7TUFDQVo7TUFDQUw7SUFDQTtJQUNBa0I7TUFDQWI7TUFDQUw7SUFDQTtJQUNBbUI7TUFDQWQ7TUFDQUw7SUFDQTtJQUNBb0I7TUFDQWY7TUFDQUw7SUFDQTtJQUNBcUI7TUFDQWhCO01BQ0FMO1FBQ0E7VUFDQXNCO1VBQ0FDO1VBQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0FwQjtNQUNBTDtJQUNBO0VBQ0E7RUFDQTBCO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQSx1QkFDQTtJQUVBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBLGtDQUNBLG9CQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0Esb0NBQ0EsMkJBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQSxtQkFDQSxnRUFDQSxLQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0F6QztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FNO01BQUE7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQW1DO0lBQUE7SUFDQTtJQUNBO0lBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQWhEO1FBQ0E7UUFDQTtVQUNBQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQWlEO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlld1xyXG5cdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0XCJcclxuXHRcdDpjbGFzcz1cInsgJ3VuaS1lYXN5aW5wdXQtZXJyb3InOiBtc2cgfVwiXHJcblx0XHQ6c3R5bGU9XCJib3hTdHlsZVwiXHJcblx0PlxyXG5cdFx0PHZpZXdcclxuXHRcdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50XCJcclxuXHRcdFx0OmNsYXNzPVwiaW5wdXRDb250ZW50Q2xhc3NcIlxyXG5cdFx0XHQ6c3R5bGU9XCJpbnB1dENvbnRlbnRTdHlsZVwiXHJcblx0XHQ+XHJcblx0XHRcdDxzbG90IG5hbWU9XCJwcmVmaXhJY29uXCI+XHJcblx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0di1pZj1cInByZWZpeEljb25cIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIlxyXG5cdFx0XHRcdFx0OnR5cGU9XCJwcmVmaXhJY29uXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwiI2MwYzRjY1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkNsaWNrSWNvbigncHJlZml4JylcIlxyXG5cdFx0XHRcdFx0c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHQ+PC91bmktaWNvbnM+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdFx0PHRleHRhcmVhXHJcblx0XHRcdFx0di1pZj1cInR5cGUgPT09ICd0ZXh0YXJlYSdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidW5pLWVhc3lpbnB1dF9fY29udGVudC10ZXh0YXJlYVwiXHJcblx0XHRcdFx0OmNsYXNzPVwieyAnaW5wdXQtcGFkZGluZyc6IGlucHV0Qm9yZGVyIH1cIlxyXG5cdFx0XHRcdDpuYW1lPVwibmFtZVwiXHJcblx0XHRcdFx0OnZhbHVlPVwidmFsXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0cGxhY2Vob2xkZXItY2xhc3M9XCJ1bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzc1wiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6YXV0b0hlaWdodD1cImF1dG9IZWlnaHRcIlxyXG5cdFx0XHRcdEBpbnB1dD1cIm9uSW5wdXRcIlxyXG5cdFx0XHRcdEBibHVyPVwiX0JsdXJcIlxyXG5cdFx0XHRcdEBmb2N1cz1cIl9Gb2N1c1wiXHJcblx0XHRcdFx0QGNvbmZpcm09XCJvbkNvbmZpcm1cIlxyXG5cdFx0XHQ+PC90ZXh0YXJlYT5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0di1lbHNlXHJcblx0XHRcdFx0OnR5cGU9XCJ0eXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogdHlwZVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0XCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJpbnB1dFN0eWxlXCJcclxuXHRcdFx0XHQ6bmFtZT1cIm5hbWVcIlxyXG5cdFx0XHRcdDp2YWx1ZT1cInZhbFwiXHJcblx0XHRcdFx0OnBhc3N3b3JkPVwiIXNob3dQYXNzd29yZCAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHRwbGFjZWhvbGRlci1jbGFzcz1cInVuaS1lYXN5aW5wdXRfX3BsYWNlaG9sZGVyLWNsYXNzXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6Y29uZmlybVR5cGU9XCJjb25maXJtVHlwZVwiXHJcblx0XHRcdFx0QGZvY3VzPVwiX0ZvY3VzXCJcclxuXHRcdFx0XHRAYmx1cj1cIl9CbHVyXCJcclxuXHRcdFx0XHRAaW5wdXQ9XCJvbklucHV0XCJcclxuXHRcdFx0XHRAY29uZmlybT1cIm9uQ29uZmlybVwiXHJcblx0XHRcdC8+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiBwYXNzd29yZEljb25cIj5cclxuXHRcdFx0XHQ8IS0tIOW8gOWQr+WvhueggeaXtuaYvuekuuWwj+ecvOedmyAtLT5cclxuXHRcdFx0XHQ8dW5pLWljb25zXHJcblx0XHRcdFx0XHR2LWlmPVwiaXNWYWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIlxyXG5cdFx0XHRcdFx0OmNsYXNzPVwieyAnaXMtdGV4dGFyZWEtaWNvbic6IHR5cGUgPT09ICd0ZXh0YXJlYScgfVwiXHJcblx0XHRcdFx0XHQ6dHlwZT1cInNob3dQYXNzd29yZCA/ICdleWUtc2xhc2gtZmlsbGVkJyA6ICdleWUtZmlsbGVkJ1wiXHJcblx0XHRcdFx0XHQ6c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHRcdDpjb2xvcj1cImZvY3VzU2hvdyA/IHByaW1hcnlDb2xvciA6ICcjYzBjNGNjJ1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkV5ZXNcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHQ8L3VuaS1pY29ucz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0PHRlbXBsYXRlIHYtZWxzZS1pZj1cInN1ZmZpeEljb24gfHwgJHNsb3RzLnN1ZmZpeEljb25cIj5cclxuXHRcdFx0XHQ8c2xvdCBuYW1lPVwic3VmZml4SWNvblwiPlxyXG5cdFx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0XHR2LWlmPVwic3VmZml4SWNvblwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29udGVudC1jbGVhci1pY29uXCJcclxuXHRcdFx0XHRcdFx0OnR5cGU9XCJzdWZmaXhJY29uXCJcclxuXHRcdFx0XHRcdFx0Y29sb3I9XCIjYzBjNGNjXCJcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwib25DbGlja0ljb24oJ3N1ZmZpeCcpXCJcclxuXHRcdFx0XHRcdFx0c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHRcdD48L3VuaS1pY29ucz5cclxuXHRcdFx0XHQ8L3Nsb3Q+XHJcblx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWVsc2U+XHJcblx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0di1pZj1cImNsZWFyYWJsZSAmJiBpc1ZhbCAmJiAhZGlzYWJsZWQgJiYgdHlwZSAhPT0gJ3RleHRhcmVhJ1wiXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbnRlbnQtY2xlYXItaWNvblwiXHJcblx0XHRcdFx0XHQ6Y2xhc3M9XCJ7ICdpcy10ZXh0YXJlYS1pY29uJzogdHlwZSA9PT0gJ3RleHRhcmVhJyB9XCJcclxuXHRcdFx0XHRcdHR5cGU9XCJjbGVhclwiXHJcblx0XHRcdFx0XHQ6c2l6ZT1cImNsZWFyU2l6ZVwiXHJcblx0XHRcdFx0XHQ6Y29sb3I9XCJtc2cgPyAnI2RkNTI0ZCcgOiBmb2N1c1Nob3cgPyBwcmltYXJ5Q29sb3IgOiAnI2MwYzRjYydcIlxyXG5cdFx0XHRcdFx0QGNsaWNrPVwib25DbGVhclwiXHJcblx0XHRcdFx0PjwvdW5pLWljb25zPlxyXG5cdFx0XHQ8L3RlbXBsYXRlPlxyXG5cdFx0XHQ8c2xvdCBuYW1lPVwicmlnaHRcIj48L3Nsb3Q+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLyoqXHJcbiAqIEVhc3lpbnB1dCDovpPlhaXmoYZcclxuICogQGRlc2NyaXB0aW9uIOatpOe7hOS7tuWPr+S7peWunueOsOihqOWNleeahOi+k+WFpeS4juagoemqjO+8jOWMheaLrCBcInRleHRcIiDlkowgXCJ0ZXh0YXJlYVwiIOexu+Wei+OAglxyXG4gKiBAdHV0b3JpYWwgaHR0cHM6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MzQ1NVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdHZhbHVlXHTovpPlhaXlhoXlrrlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfVx0dHlwZVx06L6T5YWl5qGG55qE57G75Z6L77yI6buY6K6kdGV4dO+8iSBwYXNzd29yZC90ZXh0L3RleHRhcmVhLy4uXHJcbiAqIFx0QHZhbHVlIHRleHRcdFx0XHTmlofmnKzovpPlhaXplK7nm5hcclxuICogXHRAdmFsdWUgdGV4dGFyZWFcdOWkmuihjOaWh+acrOi+k+WFpemUruebmFxyXG4gKiBcdEB2YWx1ZSBwYXNzd29yZFx05a+G56CB6L6T5YWl6ZSu55uYXHJcbiAqIFx0QHZhbHVlIG51bWJlclx0XHTmlbDlrZfovpPlhaXplK7nm5jvvIzms6jmhI9pT1PkuIphcHAtdnVl5by55Ye655qE5pWw5a2X6ZSu55uY5bm26Z2eOeWuq+agvOaWueW8j1xyXG4gKiBcdEB2YWx1ZSBpZGNhcmRcdFx06Lqr5Lu96K+B6L6T5YWl6ZSu55uY77yM5L+h44CB5pSv5LuY5a6d44CB55m+5bqm44CBUVHlsI/nqIvluo9cclxuICogXHRAdmFsdWUgZGlnaXRcdFx05bim5bCP5pWw54K555qE5pWw5a2X6ZSu55uYXHTvvIxBcHDnmoRudnVl6aG16Z2i44CB5b6u5L+h44CB5pSv5LuY5a6d44CB55m+5bqm44CB5aS05p2h44CBUVHlsI/nqIvluo/mlK/mjIFcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0Y2xlYXJhYmxlXHTmmK/lkKbmmL7npLrlj7PkvqfmuIXnqbrlhoXlrrnnmoTlm77moIfmjqfku7bvvIzngrnlh7vlj6/muIXnqbrovpPlhaXmoYblhoXlrrnvvIjpu5jorqR0cnVl77yJXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGF1dG9IZWlnaHRcdOaYr+WQpuiHquWKqOWinumrmOi+k+WFpeWMuuWfn++8jHR5cGXkuLp0ZXh0YXJlYeaXtuacieaViO+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfVx0cGxhY2Vob2xkZXJcdOi+k+WFpeahhueahOaPkOekuuaWh+Wtl1xyXG4gKiBAcHJvcGVydHkge1N0cmluZyB9XHRwbGFjZWhvbGRlclN0eWxlXHRwbGFjZWhvbGRlcueahOagt+W8jyjlhoXogZTmoLflvI/vvIzlrZfnrKbkuLIp77yM5aaCXCJjb2xvcjogI2RkZFwiXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGZvY3VzXHTmmK/lkKboh6rliqjojrflvpfnhKbngrnvvIjpu5jorqRmYWxzZe+8iVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59XHRkaXNhYmxlZFx05piv5ZCm56aB55So77yI6buY6K6kZmFsc2XvvIlcclxuICogQHByb3BlcnR5IHtOdW1iZXIgfVx0bWF4bGVuZ3RoXHTmnIDlpKfovpPlhaXplb/luqbvvIzorr7nva7kuLogLTEg55qE5pe25YCZ5LiN6ZmQ5Yi25pyA5aSn6ZW/5bqm77yI6buY6K6kMTQw77yJXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nIH1cdGNvbmZpcm1UeXBlXHTorr7nva7plK7nm5jlj7PkuIvop5LmjInpkq7nmoTmloflrZfvvIzku4XlnKh0eXBlPVwidGV4dFwi5pe255Sf5pWI77yI6buY6K6kZG9uZe+8iVxyXG4gKiBAcHJvcGVydHkge051bWJlciB9XHRjbGVhclNpemVcdOa4hemZpOWbvuagh+eahOWkp+Wwj++8jOWNleS9jXB477yI6buY6K6kMTXvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRwcmVmaXhJY29uXHTovpPlhaXmoYblpLTpg6jlm77moIdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRzdWZmaXhJY29uXHTovpPlhaXmoYblsL7pg6jlm77moIdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRwcmltYXJ5Q29sb3JcdOiuvue9ruS4u+mimOiJsu+8iOm7mOiupCMyOTc5ZmbvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0dHJpbVx05piv5ZCm6Ieq5Yqo5Y676Zmk5Lik56uv55qE56m65qC8XHJcbiAqIEB2YWx1ZSBib3RoXHTljrvpmaTkuKTnq6/nqbrmoLxcclxuICogQHZhbHVlIGxlZnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgcmlnaHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgc3RhcnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgZW5kXHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgYWxsXHRcdOWOu+mZpOWFqOmDqOepuuagvFxyXG4gKiBAdmFsdWUgbm9uZVx05LiN5Y676Zmk56m65qC8XHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGlucHV0Qm9yZGVyXHTmmK/lkKbmmL7npLppbnB1dOi+k+WFpeahhueahOi+ueahhu+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0cGFzc3dvcmRJY29uXHR0eXBlPXBhc3N3b3Jk5pe25piv5ZCm5pi+56S65bCP55y8552b5Zu+5qCHXHJcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fVx0c3R5bGVzXHToh6rlrprkuYnpopzoibJcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGlucHV0XHTovpPlhaXmoYblhoXlrrnlj5HnlJ/lj5jljJbml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGZvY3VzXHTovpPlhaXmoYbojrflvpfnhKbngrnml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGJsdXJcdOi+k+WFpeahhuWkseWOu+eEpueCueaXtuinpuWPkVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufVx0Y29uZmlybVx054K55Ye75a6M5oiQ5oyJ6ZKu5pe26Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259XHRpY29uQ2xpY2tcdOeCueWHu+Wbvuagh+aXtuinpuWPkVxyXG4gKiBAc2xvdCBwcmVmaXhJY29uIOi+k+WFpeahhuWktOmDqOaPkuanvVxyXG4gKiBAc2xvdCBzdWZmaXhJY29uIOi+k+WFpeahhuWwvumDqOaPkuanvVxyXG4gKiBAZXhhbXBsZSA8dW5pLWVhc3lpbnB1dCB2LW1vZGVsPVwibW9iaWxlXCI+PC91bmktZWFzeWlucHV0PlxyXG4gKi9cclxuZnVuY3Rpb24gb2JqMnN0ckNsYXNzKG9iaikge1xyXG5cdGxldCBjbGFzc2VzcyA9IFwiXCI7XHJcblx0Zm9yIChsZXQga2V5IGluIG9iaikge1xyXG5cdFx0Y29uc3QgdmFsID0gb2JqW2tleV07XHJcblx0XHRpZiAodmFsKSB7XHJcblx0XHRcdGNsYXNzZXNzICs9IGAke2tleX0gYDtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGNsYXNzZXNzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvYmoyc3RyU3R5bGUob2JqKSB7XHJcblx0bGV0IHN0eWxlID0gXCJcIjtcclxuXHRmb3IgKGxldCBrZXkgaW4gb2JqKSB7XHJcblx0XHRjb25zdCB2YWwgPSBvYmpba2V5XTtcclxuXHRcdHN0eWxlICs9IGAke2tleX06JHt2YWx9O2A7XHJcblx0fVxyXG5cdHJldHVybiBzdHlsZTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bmFtZTogXCJ1bmktZWFzeWlucHV0XCIsXHJcblx0ZW1pdHM6IFtcclxuXHRcdFwiY2xpY2tcIixcclxuXHRcdFwiaWNvbkNsaWNrXCIsXHJcblx0XHRcInVwZGF0ZTptb2RlbFZhbHVlXCIsXHJcblx0XHRcImlucHV0XCIsXHJcblx0XHRcImZvY3VzXCIsXHJcblx0XHRcImJsdXJcIixcclxuXHRcdFwiY29uZmlybVwiLFxyXG5cdFx0XCJjbGVhclwiLFxyXG5cdFx0XCJleWVzXCIsXHJcblx0XHRcImNoYW5nZVwiLFxyXG5cdF0sXHJcblx0bW9kZWw6IHtcclxuXHRcdHByb3A6IFwibW9kZWxWYWx1ZVwiLFxyXG5cdFx0ZXZlbnQ6IFwidXBkYXRlOm1vZGVsVmFsdWVcIixcclxuXHR9LFxyXG5cdG9wdGlvbnM6IHtcclxuXHRcdHZpcnR1YWxIb3N0OiB0cnVlLFxyXG5cdH0sXHJcblx0aW5qZWN0OiB7XHJcblx0XHRmb3JtOiB7XHJcblx0XHRcdGZyb206IFwidW5pRm9ybVwiLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsLFxyXG5cdFx0fSxcclxuXHRcdGZvcm1JdGVtOiB7XHJcblx0XHRcdGZyb206IFwidW5pRm9ybUl0ZW1cIixcclxuXHRcdFx0ZGVmYXVsdDogbnVsbCxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRwcm9wczoge1xyXG5cdFx0bmFtZTogU3RyaW5nLFxyXG5cdFx0dmFsdWU6IFtOdW1iZXIsIFN0cmluZ10sXHJcblx0XHRtb2RlbFZhbHVlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwidGV4dFwiLFxyXG5cdFx0fSxcclxuXHRcdGNsZWFyYWJsZToge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdGF1dG9IZWlnaHQ6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogZmFsc2UsXHJcblx0XHR9LFxyXG5cdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiBcIiBcIixcclxuXHRcdH0sXHJcblx0XHRwbGFjZWhvbGRlclN0eWxlOiBTdHJpbmcsXHJcblx0XHRmb2N1czoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRkaXNhYmxlZDoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRtYXhsZW5ndGg6IHtcclxuXHRcdFx0dHlwZTogW051bWJlciwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdDogMTQwLFxyXG5cdFx0fSxcclxuXHRcdGNvbmZpcm1UeXBlOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogXCJkb25lXCIsXHJcblx0XHR9LFxyXG5cdFx0Y2xlYXJTaXplOiB7XHJcblx0XHRcdHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXHJcblx0XHRcdGRlZmF1bHQ6IDI0LFxyXG5cdFx0fSxcclxuXHRcdGlucHV0Qm9yZGVyOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0cHJlZml4SWNvbjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwiXCIsXHJcblx0XHR9LFxyXG5cdFx0c3VmZml4SWNvbjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwiXCIsXHJcblx0XHR9LFxyXG5cdFx0dHJpbToge1xyXG5cdFx0XHR0eXBlOiBbQm9vbGVhbiwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRwYXNzd29yZEljb246IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRwcmltYXJ5Q29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiBcIiMyOTc5ZmZcIixcclxuXHRcdH0sXHJcblx0XHRzdHlsZXM6IHtcclxuXHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRkZWZhdWx0KCkge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2xvcjogXCIjMzMzXCIsXHJcblx0XHRcdFx0XHRkaXNhYmxlQ29sb3I6IFwiI0Y3RjZGNlwiLFxyXG5cdFx0XHRcdFx0Ym9yZGVyQ29sb3I6IFwiI2U1ZTVlNVwiLFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdHR5cGU6IFtTdHJpbmcsIEJvb2xlYW5dLFxyXG5cdFx0XHRkZWZhdWx0OiBcIlwiLFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRmb2N1c2VkOiBmYWxzZSxcclxuXHRcdFx0dmFsOiBcIlwiLFxyXG5cdFx0XHRzaG93TXNnOiBcIlwiLFxyXG5cdFx0XHRib3JkZXI6IGZhbHNlLFxyXG5cdFx0XHRpc0ZpcnN0Qm9yZGVyOiBmYWxzZSxcclxuXHRcdFx0c2hvd0NsZWFySWNvbjogZmFsc2UsXHJcblx0XHRcdHNob3dQYXNzd29yZDogZmFsc2UsXHJcblx0XHRcdGZvY3VzU2hvdzogZmFsc2UsXHJcblx0XHRcdGxvY2FsTXNnOiBcIlwiLFxyXG5cdFx0fTtcclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHQvLyDovpPlhaXmoYblhoXmmK/lkKbmnInlgLxcclxuXHRcdGlzVmFsKCkge1xyXG5cdFx0XHRjb25zdCB2YWwgPSB0aGlzLnZhbDtcclxuXHRcdFx0Ly8gZml4ZWQgYnkgbWVoYW90aWFuIOWkhOeQhuWAvOS4ujDnmoTmg4XlhrXvvIzlrZfnrKbkuLIw5LiN5Zyo5aSE55CG6IyD5Zu0XHJcblx0XHRcdGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fSxcclxuXHJcblx0XHRtc2coKSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdjb21wdXRlZCcsIHRoaXMuZm9ybSwgdGhpcy5mb3JtSXRlbSk7XHJcblx0XHRcdC8vIGlmICh0aGlzLmZvcm0pIHtcclxuXHRcdFx0Ly8gXHRyZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2UgfHwgdGhpcy5mb3JtSXRlbS5lcnJNc2c7XHJcblx0XHRcdC8vIH1cclxuXHRcdFx0Ly8gVE9ETyDlpITnkIblpLTmnaEgZm9ybUl0ZW0g5LitIGVyck1zZyDkuI3mm7TmlrDnmoTpl67pophcclxuXHRcdFx0cmV0dXJuIHRoaXMubG9jYWxNc2cgfHwgdGhpcy5lcnJvck1lc3NhZ2U7XHJcblx0XHR9LFxyXG5cdFx0Ly8g5Zug5Li6dW5pYXBw55qEaW5wdXTnu4Tku7bnmoRtYXhsZW5ndGjnu4Tku7blv4XpobvopoHmlbDlgLzvvIzov5nph4zovazkuLrmlbDlgLzvvIznlKjmiLflj6/ku6XkvKDlhaXlrZfnrKbkuLLmlbDlgLxcclxuXHRcdGlucHV0TWF4bGVuZ3RoKCkge1xyXG5cdFx0XHRyZXR1cm4gTnVtYmVyKHRoaXMubWF4bGVuZ3RoKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0Ly8g5aSE55CG5aSW5bGC5qC35byP55qEc3R5bGVcclxuXHRcdGJveFN0eWxlKCkge1xyXG5cdFx0XHRyZXR1cm4gYGNvbG9yOiR7XHJcblx0XHRcdFx0dGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyA/IFwiI2U0M2QzM1wiIDogdGhpcy5zdHlsZXMuY29sb3JcclxuXHRcdFx0fTtgO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV0IOWGheWuueeahOexu+WSjOagt+W8j+WkhOeQhlxyXG5cdFx0aW5wdXRDb250ZW50Q2xhc3MoKSB7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyQ2xhc3Moe1xyXG5cdFx0XHRcdFwiaXMtaW5wdXQtYm9yZGVyXCI6IHRoaXMuaW5wdXRCb3JkZXIsXHJcblx0XHRcdFx0XCJpcy1pbnB1dC1lcnJvci1ib3JkZXJcIjogdGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyxcclxuXHRcdFx0XHRcImlzLXRleHRhcmVhXCI6IHRoaXMudHlwZSA9PT0gXCJ0ZXh0YXJlYVwiLFxyXG5cdFx0XHRcdFwiaXMtZGlzYWJsZWRcIjogdGhpcy5kaXNhYmxlZCxcclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cdFx0aW5wdXRDb250ZW50U3R5bGUoKSB7XHJcblx0XHRcdGNvbnN0IGZvY3VzQ29sb3IgPSB0aGlzLmZvY3VzU2hvd1xyXG5cdFx0XHRcdD8gdGhpcy5wcmltYXJ5Q29sb3JcclxuXHRcdFx0XHQ6IHRoaXMuc3R5bGVzLmJvcmRlckNvbG9yO1xyXG5cdFx0XHRjb25zdCBib3JkZXJDb2xvciA9IHRoaXMuaW5wdXRCb3JkZXIgJiYgdGhpcy5tc2cgPyBcIiNkZDUyNGRcIiA6IGZvY3VzQ29sb3I7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyU3R5bGUoe1xyXG5cdFx0XHRcdFwiYm9yZGVyLWNvbG9yXCI6IGJvcmRlckNvbG9yIHx8IFwiI2U1ZTVlNVwiLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZC1jb2xvclwiOiB0aGlzLmRpc2FibGVkXHJcblx0XHRcdFx0XHQ/IHRoaXMuc3R5bGVzLmRpc2FibGVDb2xvclxyXG5cdFx0XHRcdFx0OiB0aGlzLnN0eWxlcy5iYWNrZ3JvdW5kQ29sb3IsXHJcblx0XHRcdH0pO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV05Y+z5L6n5qC35byPXHJcblx0XHRpbnB1dFN0eWxlKCkge1xyXG5cdFx0XHRjb25zdCBwYWRkaW5nUmlnaHQgPVxyXG5cdFx0XHRcdHRoaXMudHlwZSA9PT0gXCJwYXNzd29yZFwiIHx8IHRoaXMuY2xlYXJhYmxlIHx8IHRoaXMucHJlZml4SWNvblxyXG5cdFx0XHRcdFx0PyBcIlwiXHJcblx0XHRcdFx0XHQ6IFwiMTBweFwiO1xyXG5cdFx0XHRyZXR1cm4gb2JqMnN0clN0eWxlKHtcclxuXHRcdFx0XHRcInBhZGRpbmctcmlnaHRcIjogcGFkZGluZ1JpZ2h0LFxyXG5cdFx0XHRcdFwicGFkZGluZy1sZWZ0XCI6IHRoaXMucHJlZml4SWNvbiA/IFwiXCIgOiBcIjEwcHhcIixcclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cdH0sXHJcblx0d2F0Y2g6IHtcclxuXHRcdHZhbHVlKG5ld1ZhbCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IG5ld1ZhbDtcclxuXHRcdH0sXHJcblx0XHRtb2RlbFZhbHVlKG5ld1ZhbCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IG5ld1ZhbDtcclxuXHRcdH0sXHJcblx0XHRmb2N1cyhuZXdWYWwpIHtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZm9jdXNlZCA9IHRoaXMuZm9jdXM7XHJcblx0XHRcdFx0dGhpcy5mb2N1c1Nob3cgPSB0aGlzLmZvY3VzO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0dGhpcy5pbml0KCk7XHJcblx0XHQvLyBUT0RPIOWkhOeQhuWktOadoXZ1ZTMgY29tcHV0ZWQg5LiN55uR5ZCsIGluamVjdCDmm7TmlLnnmoTpl67popjvvIhmb3JtSXRlbS5lcnJNc2fvvIlcclxuXHRcdGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtSXRlbSkge1xyXG5cdFx0XHR0aGlzLiR3YXRjaChcImZvcm1JdGVtLmVyck1zZ1wiLCAobmV3VmFsKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5sb2NhbE1zZyA9IG5ld1ZhbDtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvY3VzZWQgPSB0aGlzLmZvY3VzO1xyXG5cdFx0XHR0aGlzLmZvY3VzU2hvdyA9IHRoaXMuZm9jdXM7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdG1ldGhvZHM6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog5Yid5aeL5YyW5Y+Y6YeP5YC8XHJcblx0XHQgKi9cclxuXHRcdGluaXQoKSB7XHJcblx0XHRcdGlmICh0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUgPT09IDApIHtcclxuXHRcdFx0XHR0aGlzLnZhbCA9IHRoaXMudmFsdWU7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5tb2RlbFZhbHVlIHx8IHRoaXMubW9kZWxWYWx1ZSA9PT0gMCkge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gdGhpcy5tb2RlbFZhbHVlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIOeCueWHu+Wbvuagh+aXtuinpuWPkVxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHR5cGVcclxuXHRcdCAqL1xyXG5cdFx0b25DbGlja0ljb24odHlwZSkge1xyXG5cdFx0XHR0aGlzLiRlbWl0KFwiaWNvbkNsaWNrXCIsIHR5cGUpO1xyXG5cdFx0fSxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIOaYvuekuumakOiXj+WGheWuue+8jOWvhueggeahhuaXtueUn+aViFxyXG5cdFx0ICovXHJcblx0XHRvbkV5ZXMoKSB7XHJcblx0XHRcdHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xyXG5cdFx0XHR0aGlzLiRlbWl0KFwiZXllc1wiLCB0aGlzLnNob3dQYXNzd29yZCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog6L6T5YWl5pe26Kem5Y+RXHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZXZlbnRcclxuXHRcdCAqL1xyXG5cdFx0b25JbnB1dChldmVudCkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdC8vIOWIpOaWreaYr+WQpuWOu+mZpOepuuagvFxyXG5cdFx0XHRpZiAodGhpcy50cmltKSB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLnRyaW0gPT09IFwiYm9vbGVhblwiICYmIHRoaXMudHJpbSkge1xyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLnRyaW1TdHIodmFsdWUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodHlwZW9mIHRoaXMudHJpbSA9PT0gXCJzdHJpbmdcIikge1xyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLnRyaW1TdHIodmFsdWUsIHRoaXMudHJpbSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmVyck1zZykgdGhpcy5lcnJNc2cgPSBcIlwiO1xyXG5cdFx0XHR0aGlzLnZhbCA9IHZhbHVlO1xyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB2dWUyXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJpbnB1dFwiLCB2YWx1ZSk7XHJcblx0XHRcdC8vIFRPRE/jgIDlhbzlrrnjgIB2dWUzXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJ1cGRhdGU6bW9kZWxWYWx1ZVwiLCB2YWx1ZSk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5aSW6YOo6LCD55So5pa55rOVXHJcblx0XHQgKiDojrflj5bnhKbngrnml7bop6blj5FcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBldmVudFxyXG5cdFx0ICovXHJcblx0XHRvbkZvY3VzKCkge1xyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJmb2N1c1wiLCBudWxsKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0X0ZvY3VzKGV2ZW50KSB7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy4kZW1pdChcImZvY3VzXCIsIGV2ZW50KTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdCAqIOWkseWOu+eEpueCueaXtuinpuWPkVxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGV2ZW50XHJcblx0XHQgKi9cclxuXHRcdG9uQmx1cigpIHtcclxuXHRcdFx0dGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJmb2N1c1wiLCBudWxsKTtcclxuXHRcdH0sXHJcblx0XHRfQmx1cihldmVudCkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJibHVyXCIsIGV2ZW50KTtcclxuXHRcdFx0Ly8g5qC55o2u57G75Z6L6L+U5Zue5YC877yM5ZyoZXZlbnTkuK3ojrflj5bnmoTlgLznkIborrrkuIrorrLpg73mmK9zdHJpbmdcclxuXHRcdFx0dGhpcy4kZW1pdChcImNoYW5nZVwiLCB0aGlzLnZhbCk7XHJcblx0XHRcdC8vIOWkseWOu+eEpueCueaXtuWPguS4juihqOWNleagoemqjFxyXG5cdFx0XHRpZiAodGhpcy5mb3JtICYmIHRoaXMuZm9ybUl0ZW0pIHtcclxuXHRcdFx0XHRjb25zdCB7IHZhbGlkYXRlVHJpZ2dlciB9ID0gdGhpcy5mb3JtO1xyXG5cdFx0XHRcdGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09IFwiYmx1clwiKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm1JdGVtLm9uRmllbGRDaGFuZ2UoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDmjInkuIvplK7nm5jnmoTlj5HpgIHplK5cclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBlXHJcblx0XHQgKi9cclxuXHRcdG9uQ29uZmlybShlKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJjb25maXJtXCIsIHRoaXMudmFsKTtcclxuXHRcdFx0dGhpcy4kZW1pdChcImNoYW5nZVwiLCB0aGlzLnZhbCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5riF55CG5YaF5a65XHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZXZlbnRcclxuXHRcdCAqL1xyXG5cdFx0b25DbGVhcihldmVudCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IFwiXCI7XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHZ1ZTJcclxuXHRcdFx0dGhpcy4kZW1pdChcImlucHV0XCIsIFwiXCIpO1xyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB2dWUyXHJcblx0XHRcdC8vIFRPRE/jgIDlhbzlrrnjgIB2dWUzXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJ1cGRhdGU6bW9kZWxWYWx1ZVwiLCBcIlwiKTtcclxuXHRcdFx0Ly8g54K55Ye75Y+J5Y+36Kem5Y+RXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJjbGVhclwiKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDljrvpmaTnqbrmoLxcclxuXHRcdCAqL1xyXG5cdFx0dHJpbVN0cihzdHIsIHBvcyA9IFwiYm90aFwiKSB7XHJcblx0XHRcdGlmIChwb3MgPT09IFwiYm90aFwiKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0ci50cmltKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSBcImxlZnRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbUxlZnQoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChwb3MgPT09IFwicmlnaHRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbVJpZ2h0KCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSBcInN0YXJ0XCIpIHtcclxuXHRcdFx0XHRyZXR1cm4gc3RyLnRyaW1TdGFydCgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gXCJlbmRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbUVuZCgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gXCJhbGxcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIucmVwbGFjZSgvXFxzKy9nLCBcIlwiKTtcclxuXHRcdFx0fSBlbHNlIGlmIChwb3MgPT09IFwibm9uZVwiKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0cjtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0fSxcclxuXHR9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG4kdW5pLWVycm9yOiAjZTQzZDMzO1xyXG4kdW5pLWJvcmRlci0xOiAjZGNkZmU2ICFkZWZhdWx0O1xyXG5cclxuLnVuaS1lYXN5aW5wdXQge1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHR3aWR0aDogMTAwJTtcclxuXHQvKiAjZW5kaWYgKi9cclxuXHRmbGV4OiAxO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdGNvbG9yOiAjMzMzO1xyXG5cdGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXRfX2NvbnRlbnQge1xyXG5cdGZsZXg6IDE7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQvLyBtaW4taGVpZ2h0OiAzNnB4O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHQvLyDlpITnkIZib3JkZXLliqjnlLvliJrlvIDlp4vmmL7npLrpu5HoibLnmoTpl67pophcclxuXHRib3JkZXItY29sb3I6ICNmZmY7XHJcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xyXG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0IHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0d2lkdGg6IGF1dG87XHJcblx0LyogI2VuZGlmICovXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0ZmxleDogMTtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHRmb250LXNpemU6IDE0cHg7XHJcblx0aGVpZ2h0OiAzNXB4O1xyXG5cdC8vIG1pbi1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0Y29sb3I6ICM5OTk7XHJcblx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdC8vIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYSB7XHJcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYS1pY29uIHtcclxuXHRtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LXRleHRhcmVhIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRmbGV4OiAxO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdG1hcmdpbjogNnB4O1xyXG5cdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdGhlaWdodDogODBweDtcclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdHdpZHRoOiBhdXRvO1xyXG5cdC8qICNlbmRpZiAqL1xyXG59XHJcblxyXG4uaW5wdXQtcGFkZGluZyB7XHJcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4uY29udGVudC1jbGVhci1pY29uIHtcclxuXHRwYWRkaW5nOiAwIDVweDtcclxufVxyXG5cclxuLmxhYmVsLWljb24ge1xyXG5cdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdG1hcmdpbi10b3A6IC0xcHg7XHJcbn1cclxuXHJcbi8vIOaYvuekuui+ueahhlxyXG4uaXMtaW5wdXQtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAkdW5pLWJvcmRlci0xO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHQvKiAjaWZkZWYgTVAtQUxJUEFZICovXHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLnVuaS1lcnJvci1tZXNzYWdlIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0Ym90dG9tOiAtMTdweDtcclxuXHRsZWZ0OiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAxMnB4O1xyXG5cdGNvbG9yOiAkdW5pLWVycm9yO1xyXG5cdGZvbnQtc2l6ZTogMTJweDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4udW5pLWVycm9yLW1zZy0tYm9lZGVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG59XHJcblxyXG4uaXMtaW5wdXQtZXJyb3ItYm9yZGVyIHtcclxuXHRib3JkZXItY29sb3I6ICR1bmktZXJyb3I7XHJcblxyXG5cdC51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0XHRjb2xvcjogbWl4KCNmZmYsICR1bmktZXJyb3IsIDUwJSk7XHJcblx0fVxyXG59XHJcblxyXG4udW5pLWVhc3lpbnB1dC0tYm9yZGVyIHtcclxuXHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHQvLyBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHRib3JkZXItdG9wOiAxcHggI2VlZSBzb2xpZDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXQtZXJyb3Ige1xyXG5cdHBhZGRpbmctYm90dG9tOiAwO1xyXG59XHJcblxyXG4uaXMtZmlyc3QtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0Ym9yZGVyOiBub25lO1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdGJvcmRlci13aWR0aDogMDtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmlzLWRpc2FibGVkIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmNmY2O1xyXG5cdGNvbG9yOiAjZDVkNWQ1O1xyXG5cclxuXHQudW5pLWVhc3lpbnB1dF9fcGxhY2Vob2xkZXItY2xhc3Mge1xyXG5cdFx0Y29sb3I6ICNkNWQ1ZDU7XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0fVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///24\n");
- /***/ }),
- /* 25 */
- /*!************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=script&lang=js&mpType=page ***!
- \************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./nfc.vue?vue&type=script&lang=js&mpType=page */ 26);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThtQixDQUFnQiw0bkJBQUcsRUFBQyIsImZpbGUiOiIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbmZjLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL25mYy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n");
- /***/ }),
- /* 26 */
- /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=script&lang=js&mpType=page ***!
- \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import nfc from '../../utils/ouu-nfc.js'\nvar _default = {\n data: function data() {\n return {\n nfcWriteData: 'http://www.beswell.com'\n };\n },\n mounted: function mounted() {\n __f__(\"log\", '[nfc] mounted', \" at pages/nfc/nfc.vue:28\");\n // nfc.listenNFCStatus();\n },\n onLoad: function onLoad() {\n __f__(\"log\", '[nfc] onLoad', \" at pages/nfc/nfc.vue:32\");\n this.$nfc.inputChanage(this.nfcWriteData);\n },\n onShow: function onShow() {\n __f__(\"log\", '[nfc] onShow', \" at pages/nfc/nfc.vue:36\");\n uni.$off('NfcRead');\n uni.$on('NfcRead', this.onNfcRead);\n },\n onHide: function onHide() {\n __f__(\"log\", '[nfc] onHide', \" at pages/nfc/nfc.vue:41\");\n },\n beforeDestroy: function beforeDestroy() {\n __f__(\"log\", '[nfc] beforeDestroy', \" at pages/nfc/nfc.vue:44\");\n uni.$off('NfcRead');\n },\n methods: {\n input: function input(data) {\n // console.log('input, data: ' + JSON.stringify(data))\n this.$nfc.inputChanage(data);\n },\n onNfcRead: function onNfcRead(data) {\n __f__(\"log\", '监听到事件来自 nfcRead, data: ' + JSON.stringify(data), \" at pages/nfc/nfc.vue:53\");\n // console.log(data)\n uni.showToast({\n title: \"[\".concat(data.id, \"] '\").concat(data.data, \"'\"),\n icon: 'none',\n duration: 2000\n });\n },\n writeData: function writeData() {\n this.$nfc.writeData();\n },\n readData: function readData() {\n this.$nfc.readData();\n },\n setPassword: function setPassword() {\n this.$nfc.setPwdData();\n },\n delPassword: function delPassword() {\n this.$nfc.delPwdData();\n },\n getNfcState: function getNfcState() {\n this.$nfc.getNfcState();\n },\n writeAndLock: function writeAndLock() {\n this.$nfc.writeAndLock();\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbmZjL25mYy52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm5mY1dyaXRlRGF0YSIsIm1vdW50ZWQiLCJvbkxvYWQiLCJvblNob3ciLCJ1bmkiLCJvbkhpZGUiLCJiZWZvcmVEZXN0cm95IiwibWV0aG9kcyIsImlucHV0Iiwib25OZmNSZWFkIiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJ3cml0ZURhdGEiLCJyZWFkRGF0YSIsInNldFBhc3N3b3JkIiwiZGVsUGFzc3dvcmQiLCJnZXROZmNTdGF0ZSIsIndyaXRlQW5kTG9jayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO0lBQ0FBO0VBQ0E7RUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUY7RUFDQTtFQUNBRztJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQUw7UUFDQU07UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8dW5pLWVhc3lpbnB1dCB2LW1vZGVsPVwibmZjV3JpdGVEYXRhXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXopoHlhpnlhaVORkPnmoTmlbDmja5cIiBAaW5wdXQ9XCJpbnB1dFwiIC8+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJ0bi1ib3hcIj5cclxuXHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0blwiIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwicmVhZERhdGEoKVwiPuivu+WPlk5GQzwvYnV0dG9uPlxyXG5cdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuXCIgdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJ3cml0ZURhdGEoKVwiPuWGmeWFpU5GQzwvYnV0dG9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG4tYm94XCI+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG5cIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cImdldE5mY1N0YXRlKClcIj5ORkPnirbmgIE8L2J1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0blwiIHR5cGU9XCJ3YXJuXCIgQGNsaWNrPVwid3JpdGVBbmRMb2NrKClcIj7lhpnlhaXlubbplIHlrpo8L2J1dHRvbj5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYnRuLWJveFwiPlxyXG5cdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuXCIgdHlwZT1cIndhcm5cIiBAY2xpY2s9XCJzZXRQYXNzd29yZCgpXCI+6K6+572u5a+G56CBPC9idXR0b24+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImRlbFBhc3N3b3JkKClcIj7muIXpmaTlr4bnoIE8L2J1dHRvbj5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdC8vIGltcG9ydCBuZmMgZnJvbSAnLi4vLi4vdXRpbHMvb3V1LW5mYy5qcydcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdG5mY1dyaXRlRGF0YTogJ2h0dHA6Ly93d3cuYmVzd2VsbC5jb20nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygnW25mY10gbW91bnRlZCcpXHJcblx0XHRcdC8vIG5mYy5saXN0ZW5ORkNTdGF0dXMoKTtcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdbbmZjXSBvbkxvYWQnKVxyXG5cdFx0XHR0aGlzLiRuZmMuaW5wdXRDaGFuYWdlKHRoaXMubmZjV3JpdGVEYXRhKVxyXG5cdFx0fSxcclxuXHRcdG9uU2hvdygpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIG9uU2hvdycpXHJcblx0XHRcdHVuaS4kb2ZmKCdOZmNSZWFkJylcclxuXHRcdFx0dW5pLiRvbignTmZjUmVhZCcsIHRoaXMub25OZmNSZWFkKVxyXG5cdFx0fSxcclxuXHRcdG9uSGlkZSgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIG9uSGlkZScpXHJcblx0XHR9LFxyXG5cdFx0YmVmb3JlRGVzdHJveSgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIGJlZm9yZURlc3Ryb3knKVxyXG5cdFx0XHR1bmkuJG9mZignTmZjUmVhZCcpXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRpbnB1dChkYXRhKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ2lucHV0LCBkYXRhOiAnICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXHJcblx0XHRcdFx0dGhpcy4kbmZjLmlucHV0Q2hhbmFnZShkYXRhKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbk5mY1JlYWQoZGF0YSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfnm5HlkKzliLDkuovku7bmnaXoh6ogbmZjUmVhZCwgZGF0YTogJyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHR0aXRsZTogYFske2RhdGEuaWR9XSAnJHtkYXRhLmRhdGF9J2AsXHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHdyaXRlRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMud3JpdGVEYXRhKClcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVhZERhdGEoKSB7XHJcblx0XHRcdFx0dGhpcy4kbmZjLnJlYWREYXRhKClcclxuXHRcdFx0fSxcclxuXHRcdFx0c2V0UGFzc3dvcmQoKSB7XHJcblx0XHRcdFx0dGhpcy4kbmZjLnNldFB3ZERhdGEoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkZWxQYXNzd29yZCgpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMuZGVsUHdkRGF0YSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE5mY1N0YXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuJG5mYy5nZXROZmNTdGF0ZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdHdyaXRlQW5kTG9jaygpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMud3JpdGVBbmRMb2NrKClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcblx0XHQuYnRuLWJveCB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuXHRcdFx0LmJ0biB7XHJcblx0XHRcdFx0d2lkdGg6IDM1JTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///26\n");
- /***/ }),
- /* 27 */
- /*!*********************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***!
- \*********************************************************************/
- /*! exports provided: log, default */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; });
- function typof (v) {
- var s = Object.prototype.toString.call(v)
- return s.substring(8, s.length - 1)
- }
- function isDebugMode () {
- /* eslint-disable no-undef */
- return typeof __channelId__ === 'string' && __channelId__
- }
- function jsonStringifyReplacer (k, p) {
- switch (typof(p)) {
- case 'Function':
- return 'function() { [native code] }'
- default :
- return p
- }
- }
- function log (type) {
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key]
- }
- console[type].apply(console, args)
- }
- function formatLog () {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key]
- }
- var type = args.shift()
- if (isDebugMode()) {
- args.push(args.pop().replace('at ', 'uni-app:///'))
- return console[type].apply(console, args)
- }
- var msgs = args.map(function (v) {
- var type = Object.prototype.toString.call(v).toLowerCase()
- if (type === '[object object]' || type === '[object array]') {
- try {
- v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
- } catch (e) {
- v = type
- }
- } else {
- if (v === null) {
- v = '---NULL---'
- } else if (v === undefined) {
- v = '---UNDEFINED---'
- } else {
- var vType = typof(v).toUpperCase()
- if (vType === 'NUMBER' || vType === 'BOOLEAN') {
- v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
- } else {
- v = String(v)
- }
- }
- }
- return v
- })
- var msg = ''
- if (msgs.length > 1) {
- var lastMsg = msgs.pop()
- msg = msgs.join('---COMMA---')
- if (lastMsg.indexOf(' at ') === 0) {
- msg += lastMsg
- } else {
- msg += '---COMMA---' + lastMsg
- }
- } else {
- msg = msgs[0]
- }
- console[type](msg)
- }
- /***/ }),
- /* 28 */
- /*!******************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?mpType=page ***!
- \******************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page */ 29);\n/* harmony import */ var _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./verify.vue?vue&type=script&lang=js&mpType=page */ 31);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"97e49014\",\n null,\n false,\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/verify/verify.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEk7QUFDMUk7QUFDcUU7QUFDTDs7O0FBR2hFO0FBQ29MO0FBQ3BMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLHVGQUFNO0FBQ1IsRUFBRSx3R0FBTTtBQUNSLEVBQUUsaUhBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ZlcmlmeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OTdlNDkwMTQmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ZlcmlmeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vdmVyaWZ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI5N2U0OTAxNFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy92ZXJpZnkvdmVyaWZ5LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///28\n");
- /***/ }),
- /* 29 */
- /*!************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page ***!
- \************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page */ 30);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 30 */
- /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page ***!
- \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "view",
- { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
- [
- _c(
- "view",
- { staticClass: _vm._$s(1, "sc", "text-box"), attrs: { _i: 1 } },
- [
- _vm._$s(2, "i", _vm.scanResult == "")
- ? _c("text", {
- staticClass: _vm._$s(2, "sc", "scanResult"),
- attrs: { _i: 2 },
- })
- : _c(
- "text",
- {
- staticClass: _vm._$s(3, "sc", "scanResult"),
- attrs: { _i: 3 },
- },
- [_vm._v(_vm._$s(3, "t0-0", _vm._s(_vm.scanResult)))]
- ),
- ]
- ),
- _c(
- "view",
- { staticClass: _vm._$s(4, "sc", "btn-box"), attrs: { _i: 4 } },
- [
- _c("button", {
- staticClass: _vm._$s(5, "sc", "btn-scan"),
- attrs: { _i: 5 },
- on: {
- click: function ($event) {
- return _vm.handleScan()
- },
- },
- }),
- ]
- ),
- ]
- )
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 31 */
- /*!******************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=script&lang=js&mpType=page ***!
- \******************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./verify.vue?vue&type=script&lang=js&mpType=page */ 32);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWluQixDQUFnQiwrbkJBQUcsRUFBQyIsImZpbGUiOiIzMS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdmVyaWZ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ZlcmlmeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///31\n");
- /***/ }),
- /* 32 */
- /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=script&lang=js&mpType=page ***!
- \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ass_api_pb = __webpack_require__(/*! @/grpc/ass_api_pb.js */ 33);\nvar _base = _interopRequireDefault(__webpack_require__(/*! base-64 */ 38));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n userId: 0,\n uoId: 0,\n scanResult: ''\n };\n },\n onLoad: function onLoad() {},\n methods: {\n handleScan: function handleScan() {\n var that = this;\n this.scanResult = '';\n\n // 允许从相机和相册扫码\n uni.scanCode({\n success: function success(res) {\n __f__(\"log\", '条码类型:' + res.scanType, \" at pages/verify/verify.vue:36\");\n __f__(\"log\", '条码内容:' + res.result, \" at pages/verify/verify.vue:37\");\n try {\n var result = _base.default.decode(res.result);\n // console.log(result)\n result = JSON.parse(result);\n __f__(\"log\", '条码内容 Base64.decode:' + JSON.stringify(result), \" at pages/verify/verify.vue:42\");\n that.userId = result.userId;\n that.uoId = result.uoId;\n // console.log('userId:' + that.userId)\n // console.log('uoId:' + that.uoId)\n that.verification();\n } catch (e) {\n __f__(\"log\", '扫码出现异常:' + e.message, \" at pages/verify/verify.vue:49\");\n that.scanResult = '扫码错误,请扫描正确的二维码';\n }\n }\n });\n },\n // 核销\n verification: function verification() {\n var _this = this;\n // 创建请求参数并赋值\n var request = new _ass_api_pb.AssVerificationRequest();\n request.setUserid(this.userId);\n request.setUoid(this.uoId);\n // 调用客户端相应的grpc方法,发送grpc请求,并接受后台发送回来的返回值\n this.$client.assVerification(request, {}, function (err, response) {\n if (err) {\n __f__(\"log\", \"[assVerification] err: code = \".concat(err.code) + \", message = \\\"\".concat(err.message, \"\\\"\"), \" at pages/verify/verify.vue:64\");\n uni.showToast({\n title: \"\".concat(err.message, \" (err:\").concat(err.code, \")\"),\n icon: 'none',\n duration: 2000\n });\n _this.scanResult = \"\".concat(err.message, \" (err:\").concat(err.code, \")\");\n } else {\n // console.log(response)\n uni.showToast({\n title: \"\\u6838\\u9500\\u6210\\u529F\",\n icon: 'success',\n duration: 2000\n });\n _this.scanResult = '核销成功';\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvdmVyaWZ5L3ZlcmlmeS52dWUiXSwibmFtZXMiOlsiZGF0YSIsInVzZXJJZCIsInVvSWQiLCJzY2FuUmVzdWx0Iiwib25Mb2FkIiwibWV0aG9kcyIsImhhbmRsZVNjYW4iLCJ1bmkiLCJzdWNjZXNzIiwicmVzdWx0IiwidGhhdCIsInZlcmlmaWNhdGlvbiIsInJlcXVlc3QiLCJlcnIiLCJ0aXRsZSIsImljb24iLCJkdXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWFBO0FBR0E7Ozs7Ozs7Ozs7Ozs7ZUFFQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztFQUNBQztJQUNBQztNQUNBO01BQ0E7O01BRUE7TUFDQUM7UUFDQUM7VUFDQTtVQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FDO1lBQ0E7WUFDQUM7WUFDQUE7WUFDQTtZQUNBO1lBQ0FBO1VBQ0E7WUFDQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7TUFDQUM7TUFDQUE7TUFDQTtNQUNBO1FBQ0E7VUFDQSx5RkFDQUM7VUFDQU47WUFDQU87WUFDQUM7WUFDQUM7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBVDtZQUNBTztZQUNBQztZQUNBQztVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidGV4dC1ib3hcIj5cclxuXHRcdFx0PHRleHQgdi1pZj1cInNjYW5SZXN1bHQgPT0gJydcIiBjbGFzcz1cInNjYW5SZXN1bHRcIj7lvoXmiavnoIE8L3RleHQ+XHJcblx0XHRcdDx0ZXh0IHYtZWxzZSBjbGFzcz1cInNjYW5SZXN1bHRcIj7miavnoIHnu5PmnpzvvJp7eyBzY2FuUmVzdWx0IH19PC90ZXh0PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG4tYm94XCI+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4tc2NhblwiIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwiaGFuZGxlU2NhbigpXCI+5omr5LiA5omrPC9idXR0b24+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0QXNzVmVyaWZpY2F0aW9uUmVxdWVzdFxyXG5cdH0gZnJvbSBcIkAvZ3JwYy9hc3NfYXBpX3BiLmpzXCJcclxuXHRpbXBvcnQgQmFzZTY0IGZyb20gJ2Jhc2UtNjQnXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0dXNlcklkOiAwLFxyXG5cdFx0XHRcdHVvSWQ6IDAsXHJcblx0XHRcdFx0c2NhblJlc3VsdDogJydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHt9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRoYW5kbGVTY2FuKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHRoaXMuc2NhblJlc3VsdCA9ICcnXHJcblxyXG5cdFx0XHRcdC8vIOWFgeiuuOS7juebuOacuuWSjOebuOWGjOaJq+eggVxyXG5cdFx0XHRcdHVuaS5zY2FuQ29kZSh7XHJcblx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+adoeeggeexu+Wei++8micgKyByZXMuc2NhblR5cGUpXHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmnaHnoIHlhoXlrrnvvJonICsgcmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcmVzdWx0ID0gQmFzZTY0LmRlY29kZShyZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHRyZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5p2h56CB5YaF5a65IEJhc2U2NC5kZWNvZGXvvJonICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSlcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZXJJZCA9IHJlc3VsdC51c2VySWRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVvSWQgPSByZXN1bHQudW9JZFxyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd1c2VySWTvvJonICsgdGhhdC51c2VySWQpXHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3VvSWTvvJonICsgdGhhdC51b0lkKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudmVyaWZpY2F0aW9uKClcclxuXHRcdFx0XHRcdFx0fSBjYXRjaChlKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+aJq+eggeWHuueOsOW8guW4uO+8micgKyBlLm1lc3NhZ2UpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zY2FuUmVzdWx0ID0gJ+aJq+eggemUmeivr++8jOivt+aJq+aPj+ato+ehrueahOS6jOe7tOeggSdcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaguOmUgFxyXG5cdFx0XHR2ZXJpZmljYXRpb24oKSB7XHJcblx0XHRcdFx0Ly8g5Yib5bu66K+35rGC5Y+C5pWw5bm26LWL5YC8XHJcblx0XHRcdFx0dmFyIHJlcXVlc3QgPSBuZXcgQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCgpXHJcblx0XHRcdFx0cmVxdWVzdC5zZXRVc2VyaWQodGhpcy51c2VySWQpXHJcblx0XHRcdFx0cmVxdWVzdC5zZXRVb2lkKHRoaXMudW9JZClcclxuXHRcdFx0XHQvLyDosIPnlKjlrqLmiLfnq6/nm7jlupTnmoRncnBj5pa55rOV77yM5Y+R6YCBZ3JwY+ivt+axgu+8jOW5tuaOpeWPl+WQjuWPsOWPkemAgeWbnuadpeeahOi/lOWbnuWAvFxyXG5cdFx0XHRcdHRoaXMuJGNsaWVudC5hc3NWZXJpZmljYXRpb24ocmVxdWVzdCwge30sIChlcnIsIHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZXJyKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbYXNzVmVyaWZpY2F0aW9uXSBlcnI6IGNvZGUgPSAke2Vyci5jb2RlfWAgK1xyXG5cdFx0XHRcdFx0XHRcdGAsIG1lc3NhZ2UgPSBcIiR7ZXJyLm1lc3NhZ2V9XCJgKVxyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogYCR7ZXJyLm1lc3NhZ2V9IChlcnI6JHtlcnIuY29kZX0pYCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhpcy5zY2FuUmVzdWx0ID0gYCR7ZXJyLm1lc3NhZ2V9IChlcnI6JHtlcnIuY29kZX0pYFxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzcG9uc2UpXHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBg5qC46ZSA5oiQ5YqfYCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhpcy5zY2FuUmVzdWx0ID0gJ+aguOmUgOaIkOWKnydcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcblx0XHQudGV4dC1ib3gge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0aGVpZ2h0OiAyMDBycHg7XHJcblxyXG5cdFx0XHQuc2NhblJlc3VsdCB7fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5idG4tYm94IHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuXHRcdFx0LmJ0bi1zY2FuIHtcclxuXHRcdFx0XHR3aWR0aDogOTAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n");
- /***/ }),
- /* 33 */
- /*!*************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/grpc/ass_api_pb.js ***!
- \*************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("// source: ass_api.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = __webpack_require__(/*! google-protobuf */ 34);\nvar goog = jspb;\nvar global = function () {\n return this || window || global || self || Function('return this')();\n}.call(null);\nvar base_pb = __webpack_require__(/*! ./base_pb.js */ 36);\ngoog.object.extend(proto, base_pb);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoDetailReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoGpsSaveRequest', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoListReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoSaveRequest', null, global);\ngoog.exportSymbol('proto.ass.v1.AssMapInfoDetailReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssShopListReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssVerificationRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssShopListReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssShopListReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssShopListReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssShopListReply.displayName = 'proto.ass.v1.AssShopListReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoListReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoListReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoListReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoListReply.displayName = 'proto.ass.v1.AssControlInfoListReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssMapInfoDetailReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssMapInfoDetailReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssMapInfoDetailReply.displayName = 'proto.ass.v1.AssMapInfoDetailReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoDetailReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoDetailReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoDetailReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoDetailReply.displayName = 'proto.ass.v1.AssControlInfoDetailReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoSaveRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoSaveRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoSaveRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoSaveRequest.displayName = 'proto.ass.v1.AssControlInfoSaveRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoGpsSaveRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.displayName = 'proto.ass.v1.AssControlInfoGpsSaveRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssVerificationRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssVerificationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssVerificationRequest.displayName = 'proto.ass.v1.AssVerificationRequest';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssShopListReply.repeatedFields_ = [1];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssShopListReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssShopListReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssShopListReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssShopListReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n listList: jspb.Message.toObjectList(msg.getListList(), base_pb.ShopList.toObject, includeInstance)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssShopListReply}\n */\nproto.ass.v1.AssShopListReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssShopListReply();\n return proto.ass.v1.AssShopListReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssShopListReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssShopListReply}\n */\nproto.ass.v1.AssShopListReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new base_pb.ShopList();\n reader.readMessage(value, base_pb.ShopList.deserializeBinaryFromReader);\n msg.addList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssShopListReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssShopListReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssShopListReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssShopListReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getListList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, base_pb.ShopList.serializeBinaryToWriter);\n }\n};\n\n/**\n * repeated base.v1.ShopList list = 1;\n * @return {!Array<!proto.base.v1.ShopList>}\n */\nproto.ass.v1.AssShopListReply.prototype.getListList = function () {\n return (/** @type{!Array<!proto.base.v1.ShopList>} */\n jspb.Message.getRepeatedWrapperField(this, base_pb.ShopList, 1)\n );\n};\n\n/**\n * @param {!Array<!proto.base.v1.ShopList>} value\n * @return {!proto.ass.v1.AssShopListReply} returns this\n*/\nproto.ass.v1.AssShopListReply.prototype.setListList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!proto.base.v1.ShopList=} opt_value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ShopList}\n */\nproto.ass.v1.AssShopListReply.prototype.addList = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.v1.ShopList, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssShopListReply} returns this\n */\nproto.ass.v1.AssShopListReply.prototype.clearListList = function () {\n return this.setListList([]);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoListReply.repeatedFields_ = [1];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoListReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoListReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoListReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoListReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n listList: jspb.Message.toObjectList(msg.getListList(), base_pb.ControlInfoList.toObject, includeInstance)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoListReply}\n */\nproto.ass.v1.AssControlInfoListReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoListReply();\n return proto.ass.v1.AssControlInfoListReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoListReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoListReply}\n */\nproto.ass.v1.AssControlInfoListReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new base_pb.ControlInfoList();\n reader.readMessage(value, base_pb.ControlInfoList.deserializeBinaryFromReader);\n msg.addList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoListReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoListReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoListReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getListList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, base_pb.ControlInfoList.serializeBinaryToWriter);\n }\n};\n\n/**\n * repeated base.v1.ControlInfoList list = 1;\n * @return {!Array<!proto.base.v1.ControlInfoList>}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.getListList = function () {\n return (/** @type{!Array<!proto.base.v1.ControlInfoList>} */\n jspb.Message.getRepeatedWrapperField(this, base_pb.ControlInfoList, 1)\n );\n};\n\n/**\n * @param {!Array<!proto.base.v1.ControlInfoList>} value\n * @return {!proto.ass.v1.AssControlInfoListReply} returns this\n*/\nproto.ass.v1.AssControlInfoListReply.prototype.setListList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!proto.base.v1.ControlInfoList=} opt_value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.addList = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.v1.ControlInfoList, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoListReply} returns this\n */\nproto.ass.v1.AssControlInfoListReply.prototype.clearListList = function () {\n return this.setListList([]);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssMapInfoDetailReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssMapInfoDetailReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssMapInfoDetailReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssMapInfoDetailReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n shopid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n mapname: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n zipimage: (f = msg.getZipimage()) && base_pb.NetImage.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssMapInfoDetailReply}\n */\nproto.ass.v1.AssMapInfoDetailReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssMapInfoDetailReply();\n return proto.ass.v1.AssMapInfoDetailReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssMapInfoDetailReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssMapInfoDetailReply}\n */\nproto.ass.v1.AssMapInfoDetailReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setShopid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setMapname(value);\n break;\n case 3:\n var value = new base_pb.NetImage();\n reader.readMessage(value, base_pb.NetImage.deserializeBinaryFromReader);\n msg.setZipimage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssMapInfoDetailReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssMapInfoDetailReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssMapInfoDetailReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getShopid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getMapname();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getZipimage();\n if (f != null) {\n writer.writeMessage(3, f, base_pb.NetImage.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int32 shopId = 1;\n * @return {number}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getShopid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.setShopid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string mapName = 2;\n * @return {string}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getMapname = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.setMapname = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional base.v1.NetImage zipImage = 3;\n * @return {?proto.base.v1.NetImage}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getZipimage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, base_pb.NetImage, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n*/\nproto.ass.v1.AssMapInfoDetailReply.prototype.setZipimage = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.clearZipimage = function () {\n return this.setZipimage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.hasZipimage = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoDetailReply.repeatedFields_ = [4];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoDetailReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoDetailReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoDetailReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoDetailReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cicode: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n position: (f = msg.getPosition()) && base_pb.Position.toObject(includeInstance, f),\n nfccodelistList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoDetailReply}\n */\nproto.ass.v1.AssControlInfoDetailReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoDetailReply();\n return proto.ass.v1.AssControlInfoDetailReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoDetailReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoDetailReply}\n */\nproto.ass.v1.AssControlInfoDetailReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setCicode(value);\n break;\n case 3:\n var value = new base_pb.Position();\n reader.readMessage(value, base_pb.Position.deserializeBinaryFromReader);\n msg.setPosition(value);\n break;\n case 4:\n var value = /** @type {string} */reader.readString();\n msg.addNfccodelist(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoDetailReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoDetailReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoDetailReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getCicode();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getPosition();\n if (f != null) {\n writer.writeMessage(3, f, base_pb.Position.serializeBinaryToWriter);\n }\n f = message.getNfccodelistList();\n if (f.length > 0) {\n writer.writeRepeatedString(4, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string ciCode = 2;\n * @return {string}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getCicode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setCicode = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional base.v1.Position position = 3;\n * @return {?proto.base.v1.Position}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getPosition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, base_pb.Position, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n*/\nproto.ass.v1.AssControlInfoDetailReply.prototype.setPosition = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.clearPosition = function () {\n return this.setPosition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.hasPosition = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * repeated string nfcCodeList = 4;\n * @return {!Array<string>}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getNfccodelistList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 4)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setNfccodelistList = function (value) {\n return jspb.Message.setField(this, 4, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.addNfccodelist = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 4, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.clearNfccodelistList = function () {\n return this.setNfccodelistList([]);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoSaveRequest.repeatedFields_ = [2];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoSaveRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoSaveRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoSaveRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n nfccodelistList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest}\n */\nproto.ass.v1.AssControlInfoSaveRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoSaveRequest();\n return proto.ass.v1.AssControlInfoSaveRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest}\n */\nproto.ass.v1.AssControlInfoSaveRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.addNfccodelist(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoSaveRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoSaveRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getNfccodelistList();\n if (f.length > 0) {\n writer.writeRepeatedString(2, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * repeated string nfcCodeList = 2;\n * @return {!Array<string>}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.getNfccodelistList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 2)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.setNfccodelistList = function (value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.addNfccodelist = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.clearNfccodelistList = function () {\n return this.setNfccodelistList([]);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoGpsSaveRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n position: (f = msg.getPosition()) && base_pb.Position.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoGpsSaveRequest();\n return proto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = new base_pb.Position();\n reader.readMessage(value, base_pb.Position.deserializeBinaryFromReader);\n msg.setPosition(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoGpsSaveRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getPosition();\n if (f != null) {\n writer.writeMessage(2, f, base_pb.Position.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional base.v1.Position position = 2;\n * @return {?proto.base.v1.Position}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.getPosition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, base_pb.Position, 2)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n*/\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.setPosition = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.clearPosition = function () {\n return this.setPosition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.hasPosition = function () {\n return jspb.Message.getField(this, 2) != null;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssVerificationRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssVerificationRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssVerificationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssVerificationRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n userid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n uoid: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssVerificationRequest}\n */\nproto.ass.v1.AssVerificationRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssVerificationRequest();\n return proto.ass.v1.AssVerificationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssVerificationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssVerificationRequest}\n */\nproto.ass.v1.AssVerificationRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setUserid(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readInt32();\n msg.setUoid(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssVerificationRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssVerificationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssVerificationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssVerificationRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUserid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getUoid();\n if (f !== 0) {\n writer.writeInt32(2, f);\n }\n};\n\n/**\n * optional int32 userId = 1;\n * @return {number}\n */\nproto.ass.v1.AssVerificationRequest.prototype.getUserid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssVerificationRequest} returns this\n */\nproto.ass.v1.AssVerificationRequest.prototype.setUserid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int32 uoId = 2;\n * @return {number}\n */\nproto.ass.v1.AssVerificationRequest.prototype.getUoid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 2, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssVerificationRequest} returns this\n */\nproto.ass.v1.AssVerificationRequest.prototype.setUoid = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\ngoog.object.extend(exports, proto.ass.v1);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9hc3NfYXBpX3BiLmpzIl0sIm5hbWVzIjpbImpzcGIiLCJyZXF1aXJlIiwiZ29vZyIsImdsb2JhbCIsIndpbmRvdyIsInNlbGYiLCJGdW5jdGlvbiIsImNhbGwiLCJiYXNlX3BiIiwib2JqZWN0IiwiZXh0ZW5kIiwicHJvdG8iLCJleHBvcnRTeW1ib2wiLCJhc3MiLCJ2MSIsIkFzc1Nob3BMaXN0UmVwbHkiLCJvcHRfZGF0YSIsIk1lc3NhZ2UiLCJpbml0aWFsaXplIiwicmVwZWF0ZWRGaWVsZHNfIiwiaW5oZXJpdHMiLCJERUJVRyIsIkNPTVBJTEVEIiwiZGlzcGxheU5hbWUiLCJBc3NDb250cm9sSW5mb0xpc3RSZXBseSIsIkFzc01hcEluZm9EZXRhaWxSZXBseSIsIkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkiLCJBc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0IiwiQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCIsIkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QiLCJHRU5FUkFURV9UT19PQkpFQ1QiLCJwcm90b3R5cGUiLCJ0b09iamVjdCIsIm9wdF9pbmNsdWRlSW5zdGFuY2UiLCJpbmNsdWRlSW5zdGFuY2UiLCJtc2ciLCJmIiwib2JqIiwibGlzdExpc3QiLCJ0b09iamVjdExpc3QiLCJnZXRMaXN0TGlzdCIsIlNob3BMaXN0IiwiJGpzcGJNZXNzYWdlSW5zdGFuY2UiLCJkZXNlcmlhbGl6ZUJpbmFyeSIsImJ5dGVzIiwicmVhZGVyIiwiQmluYXJ5UmVhZGVyIiwiZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyIiwibmV4dEZpZWxkIiwiaXNFbmRHcm91cCIsImZpZWxkIiwiZ2V0RmllbGROdW1iZXIiLCJ2YWx1ZSIsInJlYWRNZXNzYWdlIiwiYWRkTGlzdCIsInNraXBGaWVsZCIsInNlcmlhbGl6ZUJpbmFyeSIsIndyaXRlciIsIkJpbmFyeVdyaXRlciIsInNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyIiwiZ2V0UmVzdWx0QnVmZmVyIiwibWVzc2FnZSIsInVuZGVmaW5lZCIsImxlbmd0aCIsIndyaXRlUmVwZWF0ZWRNZXNzYWdlIiwiZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQiLCJzZXRMaXN0TGlzdCIsInNldFJlcGVhdGVkV3JhcHBlckZpZWxkIiwib3B0X3ZhbHVlIiwib3B0X2luZGV4IiwiYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCIsImJhc2UiLCJjbGVhckxpc3RMaXN0IiwiQ29udHJvbEluZm9MaXN0Iiwic2hvcGlkIiwiZ2V0RmllbGRXaXRoRGVmYXVsdCIsIm1hcG5hbWUiLCJ6aXBpbWFnZSIsImdldFppcGltYWdlIiwiTmV0SW1hZ2UiLCJyZWFkSW50MzIiLCJzZXRTaG9waWQiLCJyZWFkU3RyaW5nIiwic2V0TWFwbmFtZSIsInNldFppcGltYWdlIiwiZ2V0U2hvcGlkIiwid3JpdGVJbnQzMiIsImdldE1hcG5hbWUiLCJ3cml0ZVN0cmluZyIsIndyaXRlTWVzc2FnZSIsInNldFByb3RvM0ludEZpZWxkIiwic2V0UHJvdG8zU3RyaW5nRmllbGQiLCJnZXRXcmFwcGVyRmllbGQiLCJzZXRXcmFwcGVyRmllbGQiLCJjbGVhclppcGltYWdlIiwiaGFzWmlwaW1hZ2UiLCJnZXRGaWVsZCIsImNpaWQiLCJjaWNvZGUiLCJwb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiUG9zaXRpb24iLCJuZmNjb2RlbGlzdExpc3QiLCJnZXRSZXBlYXRlZEZpZWxkIiwic2V0Q2lpZCIsInNldENpY29kZSIsInNldFBvc2l0aW9uIiwiYWRkTmZjY29kZWxpc3QiLCJnZXRDaWlkIiwiZ2V0Q2ljb2RlIiwiZ2V0TmZjY29kZWxpc3RMaXN0Iiwid3JpdGVSZXBlYXRlZFN0cmluZyIsImNsZWFyUG9zaXRpb24iLCJoYXNQb3NpdGlvbiIsInNldE5mY2NvZGVsaXN0TGlzdCIsInNldEZpZWxkIiwiYWRkVG9SZXBlYXRlZEZpZWxkIiwiY2xlYXJOZmNjb2RlbGlzdExpc3QiLCJ1c2VyaWQiLCJ1b2lkIiwic2V0VXNlcmlkIiwic2V0VW9pZCIs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O0FBR0RsRCxJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDa0gsT0FBTyxFQUFFakgsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNvdXJjZTogYXNzX2FwaS5wcm90b1xuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3XG4gKiBAZW5oYW5jZWFibGVcbiAqIEBzdXBwcmVzcyB7bWlzc2luZ1JlcXVpcmV9IHJlcG9ydHMgZXJyb3Igb24gaW1wbGljaXQgdHlwZSB1c2FnZXMuXG4gKiBAc3VwcHJlc3Mge21lc3NhZ2VDb252ZW50aW9uc30gSlMgQ29tcGlsZXIgcmVwb3J0cyBhbiBlcnJvciBpZiBhIHZhcmlhYmxlIG9yXG4gKiAgICAgZmllbGQgc3RhcnRzIHdpdGggJ01TR18nIGFuZCBpc24ndCBhIHRyYW5zbGF0YWJsZSBtZXNzYWdlLlxuICogQHB1YmxpY1xuICovXG4vLyBHRU5FUkFURUQgQ09ERSAtLSBETyBOT1QgRURJVCFcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuXG52YXIganNwYiA9IHJlcXVpcmUoJ2dvb2dsZS1wcm90b2J1ZicpO1xudmFyIGdvb2cgPSBqc3BiO1xudmFyIGdsb2JhbCA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMgfHwgd2luZG93IHx8IGdsb2JhbCB8fCBzZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7IH0pLmNhbGwobnVsbCk7XG5cbnZhciBiYXNlX3BiID0gcmVxdWlyZSgnLi9iYXNlX3BiLmpzJyk7XG5nb29nLm9iamVjdC5leHRlbmQocHJvdG8sIGJhc2VfcGIpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHknLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucmVwZWF0ZWRGaWVsZHNfLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuZGlzcGxheU5hbWUgPSAncHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnJlcGVhdGVkRmllbGRzXywgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGlzcGxheU5hbWUgPSAncHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5yZXBlYXRlZEZpZWxkc18sIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5kaXNwbGF5TmFtZSA9ICdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnJlcGVhdGVkRmllbGRzXywgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0Jztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucmVwZWF0ZWRGaWVsZHNfID0gWzFdO1xuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgbGlzdExpc3Q6IGpzcGIuTWVzc2FnZS50b09iamVjdExpc3QobXNnLmdldExpc3RMaXN0KCksXG4gICAgYmFzZV9wYi5TaG9wTGlzdC50b09iamVjdCwgaW5jbHVkZUluc3RhbmNlKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBiYXNlX3BiLlNob3BMaXN0O1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGJhc2VfcGIuU2hvcExpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5hZGRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldExpc3RMaXN0KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVSZXBlYXRlZE1lc3NhZ2UoXG4gICAgICAxLFxuICAgICAgZixcbiAgICAgIGJhc2VfcGIuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXJcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgYmFzZS52MS5TaG9wTGlzdCBsaXN0ID0gMTtcbiAqIEByZXR1cm4geyFBcnJheTwhcHJvdG8uYmFzZS52MS5TaG9wTGlzdD59XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LnByb3RvdHlwZS5nZXRMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBleyFBcnJheTwhcHJvdG8uYmFzZS52MS5TaG9wTGlzdD59ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5TaG9wTGlzdCwgMSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IUFycmF5PCFwcm90by5iYXNlLnYxLlNob3BMaXN0Pn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX0gcmV0dXJucyB0aGlzXG4qL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucHJvdG90eXBlLnNldExpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdD19IG9wdF92YWx1ZVxuICogQHBhcmFtIHtudW1iZXI9fSBvcHRfaW5kZXhcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUuYWRkTGlzdCA9IGZ1bmN0aW9uKG9wdF92YWx1ZSwgb3B0X2luZGV4KSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLCAxLCBvcHRfdmFsdWUsIHByb3RvLmJhc2UudjEuU2hvcExpc3QsIG9wdF9pbmRleCk7XG59O1xuXG5cbi8qKlxuICogQ2xlYXJzIHRoZSBsaXN0IG1ha2luZyBpdCBlbXB0eSBidXQgbm9uLW51bGwuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUuY2xlYXJMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRMaXN0TGlzdChbXSk7XG59O1xuXG5cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnJlcGVhdGVkRmllbGRzXyA9IFsxXTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBsaXN0TGlzdDoganNwYi5NZXNzYWdlLnRvT2JqZWN0TGlzdChtc2cuZ2V0TGlzdExpc3QoKSxcbiAgICBiYXNlX3BiLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdCwgaW5jbHVkZUluc3RhbmNlKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHk7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgYmFzZV9wYi5Db250cm9sSW5mb0xpc3Q7XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUsYmFzZV9wYi5Db250cm9sSW5mb0xpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5hZGRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHl9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRMaXN0TGlzdCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlUmVwZWF0ZWRNZXNzYWdlKFxuICAgICAgMSxcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLkNvbnRyb2xJbmZvTGlzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiByZXBlYXRlZCBiYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCBsaXN0ID0gMTtcbiAqIEByZXR1cm4geyFBcnJheTwhcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3Q+fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmdldExpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGV7IUFycmF5PCFwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdD59ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5Db250cm9sSW5mb0xpc3QsIDEpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFBcnJheTwhcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3Q+fSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX0gcmV0dXJucyB0aGlzXG4qL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS5zZXRMaXN0TGlzdCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0PX0gb3B0X3ZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmFkZExpc3QgPSBmdW5jdGlvbihvcHRfdmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgMSwgb3B0X3ZhbHVlLCBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmNsZWFyTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0TGlzdExpc3QoW10pO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHNob3BpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBtYXBuYW1lOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpLFxuICAgIHppcGltYWdlOiAoZiA9IG1zZy5nZXRaaXBpbWFnZSgpKSAmJiBiYXNlX3BiLk5ldEltYWdlLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQzMigpKTtcbiAgICAgIG1zZy5zZXRTaG9waWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRNYXBuYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBiYXNlX3BiLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGJhc2VfcGIuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRaaXBpbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFNob3BpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldE1hcG5hbWUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRaaXBpbWFnZSgpO1xuICBpZiAoZiAhPSBudWxsKSB7XG4gICAgd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgIDMsXG4gICAgICBmLFxuICAgICAgYmFzZV9wYi5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBpbnQzMiBzaG9wSWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRTaG9waWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRTaG9waWQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgbWFwTmFtZSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmdldE1hcG5hbWUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRNYXBuYW1lID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYmFzZS52MS5OZXRJbWFnZSB6aXBJbWFnZSA9IDM7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuZ2V0WmlwaW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5OZXRJbWFnZSwgMykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuTmV0SW1hZ2V8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNldFppcGltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5jbGVhclppcGltYWdlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFppcGltYWdlKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuaGFzWmlwaW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAzKSAhPSBudWxsO1xufTtcblxuXG5cbi8qKlxuICogTGlzdCBvZiByZXBlYXRlZCBmaWVsZHMgd2l0aGluIHRoaXMgbWVzc2FnZSB0eXBlLlxuICogQHByaXZhdGUgeyFBcnJheTxudW1iZXI+fVxuICogQGNvbnN0XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnJlcGVhdGVkRmllbGRzXyA9IFs0XTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGNpaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMCksXG4gICAgY2ljb2RlOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpLFxuICAgIHBvc2l0aW9uOiAoZiA9IG1zZy5nZXRQb3NpdGlvbigpKSAmJiBiYXNlX3BiLlBvc2l0aW9uLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbmZjY29kZWxpc3RMaXN0OiAoZiA9IGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKG1zZywgNCkpID09IG51bGwgPyB1bmRlZmluZWQgOiBmXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseTtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDMyKCkpO1xuICAgICAgbXNnLnNldENpaWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRDaWNvZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgdmFyIHZhbHVlID0gbmV3IGJhc2VfcGIuUG9zaXRpb247XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUsYmFzZV9wYi5Qb3NpdGlvbi5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpO1xuICAgICAgbXNnLnNldFBvc2l0aW9uKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuYWRkTmZjY29kZWxpc3QodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0Q2lpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldENpY29kZSgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMyxcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNjb2RlbGlzdExpc3QoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVJlcGVhdGVkU3RyaW5nKFxuICAgICAgNCxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50MzIgY2lJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRDaWlkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRDaWlkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIGNpQ29kZSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRDaWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNldENpY29kZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJhc2UudjEuUG9zaXRpb24gcG9zaXRpb24gPSAzO1xuICogQHJldHVybiB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb259XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLlBvc2l0aW9ufSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBiYXNlX3BiLlBvc2l0aW9uLCAzKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbnx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDMsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5jbGVhclBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmhhc1Bvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMykgIT0gbnVsbDtcbn07XG5cblxuLyoqXG4gKiByZXBlYXRlZCBzdHJpbmcgbmZjQ29kZUxpc3QgPSA0O1xuICogQHJldHVybiB7IUFycmF5PHN0cmluZz59XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXROZmNjb2RlbGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IUFycmF5PHN0cmluZz59ICovIChqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0aGlzLCA0KSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshQXJyYXk8c3RyaW5nPn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXROZmNjb2RlbGlzdExpc3QgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkKHRoaXMsIDQsIHZhbHVlIHx8IFtdKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X2luZGV4XG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuYWRkTmZjY29kZWxpc3QgPSBmdW5jdGlvbih2YWx1ZSwgb3B0X2luZGV4KSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZEZpZWxkKHRoaXMsIDQsIHZhbHVlLCBvcHRfaW5kZXgpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbGlzdCBtYWtpbmcgaXQgZW1wdHkgYnV0IG5vbi1udWxsLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmNsZWFyTmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldE5mY2NvZGVsaXN0TGlzdChbXSk7XG59O1xuXG5cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucmVwZWF0ZWRGaWVsZHNfID0gWzJdO1xuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgY2lpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuZmNjb2RlbGlzdExpc3Q6IChmID0ganNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQobXNnLCAyKSkgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGZcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLmFkZE5mY2NvZGVsaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldENpaWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQzMihcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNjb2RlbGlzdExpc3QoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVJlcGVhdGVkU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50MzIgY2lJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5nZXRDaWlkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5zZXRDaWlkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgc3RyaW5nIG5mY0NvZGVMaXN0ID0gMjtcbiAqIEByZXR1cm4geyFBcnJheTxzdHJpbmc+fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUuZ2V0TmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUgeyFBcnJheTxzdHJpbmc+fSAqLyAoanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQodGhpcywgMikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IUFycmF5PHN0cmluZz59IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUuc2V0TmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZCh0aGlzLCAyLCB2YWx1ZSB8fCBbXSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucHJvdG90eXBlLmFkZE5mY2NvZGVsaXN0ID0gZnVuY3Rpb24odmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRGaWVsZCh0aGlzLCAyLCB2YWx1ZSwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5jbGVhck5mY2NvZGVsaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXROZmNjb2RlbGlzdExpc3QoW10pO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBjaWlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHBvc2l0aW9uOiAoZiA9IG1zZy5nZXRQb3NpdGlvbigpKSAmJiBiYXNlX3BiLlBvc2l0aW9uLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgYmFzZV9wYi5Qb3NpdGlvbjtcbiAgICAgIHJlYWRlci5yZWFkTWVzc2FnZSh2YWx1ZSxiYXNlX3BiLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0UG9zaXRpb24odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0Q2lpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMixcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIGNpSWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuZ2V0Q2lpZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuc2V0Q2lpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJhc2UudjEuUG9zaXRpb24gcG9zaXRpb24gPSAyO1xuICogQHJldHVybiB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb259XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5nZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLlBvc2l0aW9ufSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBiYXNlX3BiLlBvc2l0aW9uLCAyKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbnx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5zZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5jbGVhclBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3QucHJvdG90eXBlLmhhc1Bvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMikgIT0gbnVsbDtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgdXNlcmlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHVvaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgMClcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0VXNlcmlkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQzMigpKTtcbiAgICAgIG1zZy5zZXRVb2lkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFVzZXJpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFVvaWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQzMihcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHVzZXJJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LnByb3RvdHlwZS5nZXRVc2VyaWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QucHJvdG90eXBlLnNldFVzZXJpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHVvSWQgPSAyO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUuZ2V0VW9pZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUuc2V0VW9pZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5nb29nLm9iamVjdC5leHRlbmQoZXhwb3J0cywgcHJvdG8uYXNzLnYxKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///33\n");
- /***/ }),
- /* 34 */
- /*!******************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/node_modules/google-protobuf/google-protobuf.js ***!
- \******************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
- /*
- Copyright The Closure Library Authors.
- SPDX-License-Identifier: Apache-2.0
- */
- var $jscomp = $jscomp || {};
- $jscomp.scope = {};
- $jscomp.findInternal = function (a, b, c) {
- a instanceof String && (a = String(a));
- for (var d = a.length, e = 0; e < d; e++) {
- var f = a[e];
- if (b.call(c, f, e, a)) return {
- i: e,
- v: f
- };
- }
- return {
- i: -1,
- v: void 0
- };
- };
- $jscomp.ASSUME_ES5 = !1;
- $jscomp.ASSUME_NO_NATIVE_MAP = !1;
- $jscomp.ASSUME_NO_NATIVE_SET = !1;
- $jscomp.SIMPLE_FROUND_POLYFILL = !1;
- $jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) {
- a != Array.prototype && a != Object.prototype && (a[b] = c.value);
- };
- $jscomp.getGlobal = function (a) {
- return "undefined" != typeof window && window === a ? a : "undefined" != typeof global && null != global ? global : a;
- };
- $jscomp.global = $jscomp.getGlobal(this);
- $jscomp.polyfill = function (a, b, c, d) {
- if (b) {
- c = $jscomp.global;
- a = a.split(".");
- for (d = 0; d < a.length - 1; d++) {
- var e = a[d];
- e in c || (c[e] = {});
- c = c[e];
- }
- a = a[a.length - 1];
- d = c[a];
- b = b(d);
- b != d && null != b && $jscomp.defineProperty(c, a, {
- configurable: !0,
- writable: !0,
- value: b
- });
- }
- };
- $jscomp.polyfill("Array.prototype.findIndex", function (a) {
- return a ? a : function (a, c) {
- return $jscomp.findInternal(this, a, c).i;
- };
- }, "es6", "es3");
- $jscomp.checkStringArgs = function (a, b, c) {
- if (null == a) throw new TypeError("The 'this' value for String.prototype." + c + " must not be null or undefined");
- if (b instanceof RegExp) throw new TypeError("First argument to String.prototype." + c + " must not be a regular expression");
- return a + "";
- };
- $jscomp.polyfill("String.prototype.endsWith", function (a) {
- return a ? a : function (a, c) {
- var b = $jscomp.checkStringArgs(this, a, "endsWith");
- a += "";
- void 0 === c && (c = b.length);
- c = Math.max(0, Math.min(c | 0, b.length));
- for (var e = a.length; 0 < e && 0 < c;) {
- if (b[--c] != a[--e]) return !1;
- }
- return 0 >= e;
- };
- }, "es6", "es3");
- $jscomp.polyfill("Array.prototype.find", function (a) {
- return a ? a : function (a, c) {
- return $jscomp.findInternal(this, a, c).v;
- };
- }, "es6", "es3");
- $jscomp.polyfill("String.prototype.startsWith", function (a) {
- return a ? a : function (a, c) {
- var b = $jscomp.checkStringArgs(this, a, "startsWith");
- a += "";
- var e = b.length,
- f = a.length;
- c = Math.max(0, Math.min(c | 0, b.length));
- for (var g = 0; g < f && c < e;) {
- if (b[c++] != a[g++]) return !1;
- }
- return g >= f;
- };
- }, "es6", "es3");
- $jscomp.polyfill("String.prototype.repeat", function (a) {
- return a ? a : function (a) {
- var b = $jscomp.checkStringArgs(this, null, "repeat");
- if (0 > a || 1342177279 < a) throw new RangeError("Invalid count value");
- a |= 0;
- for (var d = ""; a;) {
- if (a & 1 && (d += b), a >>>= 1) b += b;
- }
- return d;
- };
- }, "es6", "es3");
- var COMPILED = !0,
- goog = goog || {};
- goog.global = this || self;
- goog.exportPath_ = function (a, b, c) {
- a = a.split(".");
- c = c || goog.global;
- a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]);
- for (var d; a.length && (d = a.shift());) {
- a.length || void 0 === b ? c = c[d] && c[d] !== Object.prototype[d] ? c[d] : c[d] = {} : c[d] = b;
- }
- };
- goog.define = function (a, b) {
- if (!COMPILED) {
- var c = goog.global.CLOSURE_UNCOMPILED_DEFINES,
- d = goog.global.CLOSURE_DEFINES;
- c && void 0 === c.nodeType && Object.prototype.hasOwnProperty.call(c, a) ? b = c[a] : d && void 0 === d.nodeType && Object.prototype.hasOwnProperty.call(d, a) && (b = d[a]);
- }
- return b;
- };
- goog.FEATURESET_YEAR = 2012;
- goog.DEBUG = !0;
- goog.LOCALE = "en";
- goog.TRUSTED_SITE = !0;
- goog.STRICT_MODE_COMPATIBLE = !1;
- goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG;
- goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;
- goog.provide = function (a) {
- if (goog.isInModuleLoader_()) throw Error("goog.provide cannot be used within a module.");
- if (!COMPILED && goog.isProvided_(a)) throw Error('Namespace "' + a + '" already declared.');
- goog.constructNamespace_(a);
- };
- goog.constructNamespace_ = function (a, b) {
- if (!COMPILED) {
- delete goog.implicitNamespaces_[a];
- for (var c = a; (c = c.substring(0, c.lastIndexOf("."))) && !goog.getObjectByName(c);) {
- goog.implicitNamespaces_[c] = !0;
- }
- }
- goog.exportPath_(a, b);
- };
- goog.getScriptNonce = function (a) {
- if (a && a != goog.global) return goog.getScriptNonce_(a.document);
- null === goog.cspNonce_ && (goog.cspNonce_ = goog.getScriptNonce_(goog.global.document));
- return goog.cspNonce_;
- };
- goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/;
- goog.cspNonce_ = null;
- goog.getScriptNonce_ = function (a) {
- return (a = a.querySelector && a.querySelector("script[nonce]")) && (a = a.nonce || a.getAttribute("nonce")) && goog.NONCE_PATTERN_.test(a) ? a : "";
- };
- goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
- goog.module = function (a) {
- if ("string" !== typeof a || !a || -1 == a.search(goog.VALID_MODULE_RE_)) throw Error("Invalid module identifier");
- if (!goog.isInGoogModuleLoader_()) throw Error("Module " + a + " has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
- if (goog.moduleLoaderState_.moduleName) throw Error("goog.module may only be called once per module.");
- goog.moduleLoaderState_.moduleName = a;
- if (!COMPILED) {
- if (goog.isProvided_(a)) throw Error('Namespace "' + a + '" already declared.');
- delete goog.implicitNamespaces_[a];
- }
- };
- goog.module.get = function (a) {
- return goog.module.getInternal_(a);
- };
- goog.module.getInternal_ = function (a) {
- if (!COMPILED) {
- if (a in goog.loadedModules_) return goog.loadedModules_[a].exports;
- if (!goog.implicitNamespaces_[a]) return a = goog.getObjectByName(a), null != a ? a : null;
- }
- return null;
- };
- goog.ModuleType = {
- ES6: "es6",
- GOOG: "goog"
- };
- goog.moduleLoaderState_ = null;
- goog.isInModuleLoader_ = function () {
- return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();
- };
- goog.isInGoogModuleLoader_ = function () {
- return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;
- };
- goog.isInEs6ModuleLoader_ = function () {
- if (goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6) return !0;
- var a = goog.global.$jscomp;
- return a ? "function" != typeof a.getCurrentModulePath ? !1 : !!a.getCurrentModulePath() : !1;
- };
- goog.module.declareLegacyNamespace = function () {
- if (!COMPILED && !goog.isInGoogModuleLoader_()) throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");
- if (!COMPILED && !goog.moduleLoaderState_.moduleName) throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");
- goog.moduleLoaderState_.declareLegacyNamespace = !0;
- };
- goog.declareModuleId = function (a) {
- if (!COMPILED) {
- if (!goog.isInEs6ModuleLoader_()) throw Error("goog.declareModuleId may only be called from within an ES6 module");
- if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) throw Error("goog.declareModuleId may only be called once per module.");
- if (a in goog.loadedModules_) throw Error('Module with namespace "' + a + '" already exists.');
- }
- if (goog.moduleLoaderState_) goog.moduleLoaderState_.moduleName = a;else {
- var b = goog.global.$jscomp;
- if (!b || "function" != typeof b.getCurrentModulePath) throw Error('Module with namespace "' + a + '" has been loaded incorrectly.');
- b = b.require(b.getCurrentModulePath());
- goog.loadedModules_[a] = {
- exports: b,
- type: goog.ModuleType.ES6,
- moduleId: a
- };
- }
- };
- goog.setTestOnly = function (a) {
- if (goog.DISALLOW_TEST_ONLY_CODE) throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : "."));
- };
- goog.forwardDeclare = function (a) {};
- COMPILED || (goog.isProvided_ = function (a) {
- return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && null != goog.getObjectByName(a);
- }, goog.implicitNamespaces_ = {
- "goog.module": !0
- });
- goog.getObjectByName = function (a, b) {
- a = a.split(".");
- b = b || goog.global;
- for (var c = 0; c < a.length; c++) {
- if (b = b[a[c]], null == b) return null;
- }
- return b;
- };
- goog.globalize = function (a, b) {
- b = b || goog.global;
- for (var c in a) {
- b[c] = a[c];
- }
- };
- goog.addDependency = function (a, b, c, d) {
- !COMPILED && goog.DEPENDENCIES_ENABLED && goog.debugLoader_.addDependency(a, b, c, d);
- };
- goog.ENABLE_DEBUG_LOADER = !0;
- goog.logToConsole_ = function (a) {
- goog.global.console && goog.global.console.error(a);
- };
- goog.require = function (a) {
- if (!COMPILED) {
- goog.ENABLE_DEBUG_LOADER && goog.debugLoader_.requested(a);
- if (goog.isProvided_(a)) {
- if (goog.isInModuleLoader_()) return goog.module.getInternal_(a);
- } else if (goog.ENABLE_DEBUG_LOADER) {
- var b = goog.moduleLoaderState_;
- goog.moduleLoaderState_ = null;
- try {
- goog.debugLoader_.load_(a);
- } finally {
- goog.moduleLoaderState_ = b;
- }
- }
- return null;
- }
- };
- goog.requireType = function (a) {
- return {};
- };
- goog.basePath = "";
- goog.nullFunction = function () {};
- goog.abstractMethod = function () {
- throw Error("unimplemented abstract method");
- };
- goog.addSingletonGetter = function (a) {
- a.instance_ = void 0;
- a.getInstance = function () {
- if (a.instance_) return a.instance_;
- goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a);
- return a.instance_ = new a();
- };
- };
- goog.instantiatedSingletons_ = [];
- goog.LOAD_MODULE_USING_EVAL = !0;
- goog.SEAL_MODULE_EXPORTS = goog.DEBUG;
- goog.loadedModules_ = {};
- goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
- goog.TRANSPILE = "detect";
- goog.ASSUME_ES_MODULES_TRANSPILED = !1;
- goog.TRANSPILE_TO_LANGUAGE = "";
- goog.TRANSPILER = "transpile.js";
- goog.hasBadLetScoping = null;
- goog.useSafari10Workaround = function () {
- if (null == goog.hasBadLetScoping) {
- try {
- var a = !eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";');
- } catch (b) {
- a = !1;
- }
- goog.hasBadLetScoping = a;
- }
- return goog.hasBadLetScoping;
- };
- goog.workaroundSafari10EvalBug = function (a) {
- return "(function(){" + a + "\n;})();\n";
- };
- goog.loadModule = function (a) {
- var b = goog.moduleLoaderState_;
- try {
- goog.moduleLoaderState_ = {
- moduleName: "",
- declareLegacyNamespace: !1,
- type: goog.ModuleType.GOOG
- };
- if (goog.isFunction(a)) var c = a.call(void 0, {});else if ("string" === typeof a) goog.useSafari10Workaround() && (a = goog.workaroundSafari10EvalBug(a)), c = goog.loadModuleFromSource_.call(void 0, a);else throw Error("Invalid module definition");
- var d = goog.moduleLoaderState_.moduleName;
- if ("string" === typeof d && d) goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(d, c) : goog.SEAL_MODULE_EXPORTS && Object.seal && "object" == _typeof(c) && null != c && Object.seal(c), goog.loadedModules_[d] = {
- exports: c,
- type: goog.ModuleType.GOOG,
- moduleId: goog.moduleLoaderState_.moduleName
- };else throw Error('Invalid module name "' + d + '"');
- } finally {
- goog.moduleLoaderState_ = b;
- }
- };
- goog.loadModuleFromSource_ = function (a) {
- eval(a);
- return {};
- };
- goog.normalizePath_ = function (a) {
- a = a.split("/");
- for (var b = 0; b < a.length;) {
- "." == a[b] ? a.splice(b, 1) : b && ".." == a[b] && a[b - 1] && ".." != a[b - 1] ? a.splice(--b, 2) : b++;
- }
- return a.join("/");
- };
- goog.loadFileSync_ = function (a) {
- if (goog.global.CLOSURE_LOAD_FILE_SYNC) return goog.global.CLOSURE_LOAD_FILE_SYNC(a);
- try {
- var b = new goog.global.XMLHttpRequest();
- b.open("get", a, !1);
- b.send();
- return 0 == b.status || 200 == b.status ? b.responseText : null;
- } catch (c) {
- return null;
- }
- };
- goog.transpile_ = function (a, b, c) {
- var d = goog.global.$jscomp;
- d || (goog.global.$jscomp = d = {});
- var e = d.transpile;
- if (!e) {
- var f = goog.basePath + goog.TRANSPILER,
- g = goog.loadFileSync_(f);
- if (g) {
- (function () {
- (0, eval)(g + "\n//# sourceURL=" + f);
- }).call(goog.global);
- if (goog.global.$gwtExport && goog.global.$gwtExport.$jscomp && !goog.global.$gwtExport.$jscomp.transpile) throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: ' + JSON.stringify(goog.global.$gwtExport));
- goog.global.$jscomp.transpile = goog.global.$gwtExport.$jscomp.transpile;
- d = goog.global.$jscomp;
- e = d.transpile;
- }
- }
- e || (e = d.transpile = function (a, b) {
- goog.logToConsole_(b + " requires transpilation but no transpiler was found.");
- return a;
- });
- return e(a, b, c);
- };
- goog.typeOf = function (a) {
- var b = _typeof(a);
- if ("object" == b) {
- if (a) {
- if (a instanceof Array) return "array";
- if (a instanceof Object) return b;
- var c = Object.prototype.toString.call(a);
- if ("[object Window]" == c) return "object";
- if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
- if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function";
- } else return "null";
- } else if ("function" == b && "undefined" == typeof a.call) return "object";
- return b;
- };
- goog.isArray = function (a) {
- return "array" == goog.typeOf(a);
- };
- goog.isArrayLike = function (a) {
- var b = goog.typeOf(a);
- return "array" == b || "object" == b && "number" == typeof a.length;
- };
- goog.isDateLike = function (a) {
- return goog.isObject(a) && "function" == typeof a.getFullYear;
- };
- goog.isFunction = function (a) {
- return "function" == goog.typeOf(a);
- };
- goog.isObject = function (a) {
- var b = _typeof(a);
- return "object" == b && null != a || "function" == b;
- };
- goog.getUid = function (a) {
- return Object.prototype.hasOwnProperty.call(a, goog.UID_PROPERTY_) && a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_);
- };
- goog.hasUid = function (a) {
- return !!a[goog.UID_PROPERTY_];
- };
- goog.removeUid = function (a) {
- null !== a && "removeAttribute" in a && a.removeAttribute(goog.UID_PROPERTY_);
- try {
- delete a[goog.UID_PROPERTY_];
- } catch (b) {}
- };
- goog.UID_PROPERTY_ = "closure_uid_" + (1E9 * Math.random() >>> 0);
- goog.uidCounter_ = 0;
- goog.getHashCode = goog.getUid;
- goog.removeHashCode = goog.removeUid;
- goog.cloneObject = function (a) {
- var b = goog.typeOf(a);
- if ("object" == b || "array" == b) {
- if ("function" === typeof a.clone) return a.clone();
- b = "array" == b ? [] : {};
- for (var c in a) {
- b[c] = goog.cloneObject(a[c]);
- }
- return b;
- }
- return a;
- };
- goog.bindNative_ = function (a, b, c) {
- return a.call.apply(a.bind, arguments);
- };
- goog.bindJs_ = function (a, b, c) {
- if (!a) throw Error();
- if (2 < arguments.length) {
- var d = Array.prototype.slice.call(arguments, 2);
- return function () {
- var c = Array.prototype.slice.call(arguments);
- Array.prototype.unshift.apply(c, d);
- return a.apply(b, c);
- };
- }
- return function () {
- return a.apply(b, arguments);
- };
- };
- goog.bind = function (a, b, c) {
- Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;
- return goog.bind.apply(null, arguments);
- };
- goog.partial = function (a, b) {
- var c = Array.prototype.slice.call(arguments, 1);
- return function () {
- var b = c.slice();
- b.push.apply(b, arguments);
- return a.apply(this, b);
- };
- };
- goog.mixin = function (a, b) {
- for (var c in b) {
- a[c] = b[c];
- }
- };
- goog.now = goog.TRUSTED_SITE && Date.now || function () {
- return +new Date();
- };
- goog.globalEval = function (a) {
- if (goog.global.execScript) goog.global.execScript(a, "JavaScript");else if (goog.global.eval) {
- if (null == goog.evalWorksForGlobals_) {
- try {
- goog.global.eval("var _evalTest_ = 1;");
- } catch (d) {}
- if ("undefined" != typeof goog.global._evalTest_) {
- try {
- delete goog.global._evalTest_;
- } catch (d) {}
- goog.evalWorksForGlobals_ = !0;
- } else goog.evalWorksForGlobals_ = !1;
- }
- if (goog.evalWorksForGlobals_) goog.global.eval(a);else {
- var b = goog.global.document,
- c = b.createElement("script");
- c.type = "text/javascript";
- c.defer = !1;
- c.appendChild(b.createTextNode(a));
- b.head.appendChild(c);
- b.head.removeChild(c);
- }
- } else throw Error("goog.globalEval not available");
- };
- goog.evalWorksForGlobals_ = null;
- goog.getCssName = function (a, b) {
- if ("." == String(a).charAt(0)) throw Error('className passed in goog.getCssName must not start with ".". You passed: ' + a);
- var c = function c(a) {
- return goog.cssNameMapping_[a] || a;
- },
- d = function d(a) {
- a = a.split("-");
- for (var b = [], d = 0; d < a.length; d++) {
- b.push(c(a[d]));
- }
- return b.join("-");
- };
- d = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? c : d : function (a) {
- return a;
- };
- a = b ? a + "-" + d(b) : d(a);
- return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(a) : a;
- };
- goog.setCssNameMapping = function (a, b) {
- goog.cssNameMapping_ = a;
- goog.cssNameMappingStyle_ = b;
- };
- !COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);
- goog.getMsg = function (a, b, c) {
- c && c.html && (a = a.replace(/</g, "<"));
- b && (a = a.replace(/\{\$([^}]+)}/g, function (a, c) {
- return null != b && c in b ? b[c] : a;
- }));
- return a;
- };
- goog.getMsgWithFallback = function (a, b) {
- return a;
- };
- goog.exportSymbol = function (a, b, c) {
- goog.exportPath_(a, b, c);
- };
- goog.exportProperty = function (a, b, c) {
- a[b] = c;
- };
- goog.inherits = function (a, b) {
- function c() {}
- c.prototype = b.prototype;
- a.superClass_ = b.prototype;
- a.prototype = new c();
- a.prototype.constructor = a;
- a.base = function (a, c, f) {
- for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) {
- d[e - 2] = arguments[e];
- }
- return b.prototype[c].apply(a, d);
- };
- };
- goog.scope = function (a) {
- if (goog.isInModuleLoader_()) throw Error("goog.scope is not supported within a module.");
- a.call(goog.global);
- };
- COMPILED || (goog.global.COMPILED = COMPILED);
- goog.defineClass = function (a, b) {
- var c = b.constructor,
- d = b.statics;
- c && c != Object.prototype.constructor || (c = function c() {
- throw Error("cannot instantiate an interface (no constructor defined).");
- });
- c = goog.defineClass.createSealingConstructor_(c, a);
- a && goog.inherits(c, a);
- delete b.constructor;
- delete b.statics;
- goog.defineClass.applyProperties_(c.prototype, b);
- null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));
- return c;
- };
- goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
- goog.defineClass.createSealingConstructor_ = function (a, b) {
- if (!goog.defineClass.SEAL_CLASS_INSTANCES) return a;
- var c = !goog.defineClass.isUnsealable_(b),
- d = function d() {
- var b = a.apply(this, arguments) || this;
- b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];
- this.constructor === d && c && Object.seal instanceof Function && Object.seal(b);
- return b;
- };
- return d;
- };
- goog.defineClass.isUnsealable_ = function (a) {
- return a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_];
- };
- goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
- goog.defineClass.applyProperties_ = function (a, b) {
- for (var c in b) {
- Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
- }
- for (var d = 0; d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; d++) {
- c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
- }
- };
- goog.tagUnsealableClass = function (a) {
- !COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);
- };
- goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = "goog_defineClass_legacy_unsealable";
- !COMPILED && goog.DEPENDENCIES_ENABLED && (goog.inHtmlDocument_ = function () {
- var a = goog.global.document;
- return null != a && "write" in a;
- }, goog.isDocumentLoading_ = function () {
- var a = goog.global.document;
- return a.attachEvent ? "complete" != a.readyState : "loading" == a.readyState;
- }, goog.findBasePath_ = function () {
- if (void 0 != goog.global.CLOSURE_BASE_PATH && "string" === typeof goog.global.CLOSURE_BASE_PATH) goog.basePath = goog.global.CLOSURE_BASE_PATH;else if (goog.inHtmlDocument_()) {
- var a = goog.global.document,
- b = a.currentScript;
- a = b ? [b] : a.getElementsByTagName("SCRIPT");
- for (b = a.length - 1; 0 <= b; --b) {
- var c = a[b].src,
- d = c.lastIndexOf("?");
- d = -1 == d ? c.length : d;
- if ("base.js" == c.substr(d - 7, 7)) {
- goog.basePath = c.substr(0, d - 7);
- break;
- }
- }
- }
- }, goog.findBasePath_(), goog.Transpiler = function () {
- this.requiresTranspilation_ = null;
- this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE;
- }, goog.Transpiler.prototype.createRequiresTranspilation_ = function () {
- function a(a, b) {
- e ? d[a] = !0 : b() ? (c = a, d[a] = !1) : e = d[a] = !0;
- }
- function b(a) {
- try {
- return !!eval(a);
- } catch (h) {
- return !1;
- }
- }
- var c = "es3",
- d = {
- es3: !1
- },
- e = !1,
- f = goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : "";
- a("es5", function () {
- return b("[1,].length==1");
- });
- a("es6", function () {
- return f.match(/Edge\/(\d+)(\.\d)*/i) ? !1 : b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()');
- });
- a("es7", function () {
- return b("2 ** 2 == 4");
- });
- a("es8", function () {
- return b("async () => 1, true");
- });
- a("es9", function () {
- return b("({...rest} = {}), true");
- });
- a("es_next", function () {
- return !1;
- });
- return {
- target: c,
- map: d
- };
- }, goog.Transpiler.prototype.needsTranspile = function (a, b) {
- if ("always" == goog.TRANSPILE) return !0;
- if ("never" == goog.TRANSPILE) return !1;
- if (!this.requiresTranspilation_) {
- var c = this.createRequiresTranspilation_();
- this.requiresTranspilation_ = c.map;
- this.transpilationTarget_ = this.transpilationTarget_ || c.target;
- }
- if (a in this.requiresTranspilation_) return this.requiresTranspilation_[a] ? !0 : !goog.inHtmlDocument_() || "es6" != b || "noModule" in goog.global.document.createElement("script") ? !1 : !0;
- throw Error("Unknown language mode: " + a);
- }, goog.Transpiler.prototype.transpile = function (a, b) {
- return goog.transpile_(a, b, this.transpilationTarget_);
- }, goog.transpiler_ = new goog.Transpiler(), goog.protectScriptTag_ = function (a) {
- return a.replace(/<\/(SCRIPT)/ig, "\\x3c/$1");
- }, goog.DebugLoader_ = function () {
- this.dependencies_ = {};
- this.idToPath_ = {};
- this.written_ = {};
- this.loadingDeps_ = [];
- this.depsToLoad_ = [];
- this.paused_ = !1;
- this.factory_ = new goog.DependencyFactory(goog.transpiler_);
- this.deferredCallbacks_ = {};
- this.deferredQueue_ = [];
- }, goog.DebugLoader_.prototype.bootstrap = function (a, b) {
- function c() {
- d && (goog.global.setTimeout(d, 0), d = null);
- }
- var d = b;
- if (a.length) {
- b = [];
- for (var e = 0; e < a.length; e++) {
- var f = this.getPathFromDeps_(a[e]);
- if (!f) throw Error("Unregonized namespace: " + a[e]);
- b.push(this.dependencies_[f]);
- }
- f = goog.require;
- var g = 0;
- for (e = 0; e < a.length; e++) {
- f(a[e]), b[e].onLoad(function () {
- ++g == a.length && c();
- });
- }
- } else c();
- }, goog.DebugLoader_.prototype.loadClosureDeps = function () {
- this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + "deps.js"), "deps.js", [], [], {}, !1));
- this.loadDeps_();
- }, goog.DebugLoader_.prototype.requested = function (a, b) {
- (a = this.getPathFromDeps_(a)) && (b || this.areDepsLoaded_(this.dependencies_[a].requires)) && (b = this.deferredCallbacks_[a]) && (delete this.deferredCallbacks_[a], b());
- }, goog.DebugLoader_.prototype.setDependencyFactory = function (a) {
- this.factory_ = a;
- }, goog.DebugLoader_.prototype.load_ = function (a) {
- if (this.getPathFromDeps_(a)) {
- var b = this,
- c = [],
- d = function d(a) {
- var e = b.getPathFromDeps_(a);
- if (!e) throw Error("Bad dependency path or symbol: " + a);
- if (!b.written_[e]) {
- b.written_[e] = !0;
- a = b.dependencies_[e];
- for (e = 0; e < a.requires.length; e++) {
- goog.isProvided_(a.requires[e]) || d(a.requires[e]);
- }
- c.push(a);
- }
- };
- d(a);
- a = !!this.depsToLoad_.length;
- this.depsToLoad_ = this.depsToLoad_.concat(c);
- this.paused_ || a || this.loadDeps_();
- } else throw a = "goog.require could not find: " + a, goog.logToConsole_(a), Error(a);
- }, goog.DebugLoader_.prototype.loadDeps_ = function () {
- for (var a = this, b = this.paused_; this.depsToLoad_.length && !b;) {
- (function () {
- var c = !1,
- d = a.depsToLoad_.shift(),
- e = !1;
- a.loading_(d);
- var f = {
- pause: function pause() {
- if (c) throw Error("Cannot call pause after the call to load.");
- b = !0;
- },
- resume: function resume() {
- c ? a.resume_() : b = !1;
- },
- loaded: function loaded() {
- if (e) throw Error("Double call to loaded.");
- e = !0;
- a.loaded_(d);
- },
- pending: function pending() {
- for (var b = [], c = 0; c < a.loadingDeps_.length; c++) {
- b.push(a.loadingDeps_[c]);
- }
- return b;
- },
- setModuleState: function setModuleState(a) {
- goog.moduleLoaderState_ = {
- type: a,
- moduleName: "",
- declareLegacyNamespace: !1
- };
- },
- registerEs6ModuleExports: function registerEs6ModuleExports(a, b, c) {
- c && (goog.loadedModules_[c] = {
- exports: b,
- type: goog.ModuleType.ES6,
- moduleId: c || ""
- });
- },
- registerGoogModuleExports: function registerGoogModuleExports(a, b) {
- goog.loadedModules_[a] = {
- exports: b,
- type: goog.ModuleType.GOOG,
- moduleId: a
- };
- },
- clearModuleState: function clearModuleState() {
- goog.moduleLoaderState_ = null;
- },
- defer: function defer(b) {
- if (c) throw Error("Cannot register with defer after the call to load.");
- a.defer_(d, b);
- },
- areDepsLoaded: function areDepsLoaded() {
- return a.areDepsLoaded_(d.requires);
- }
- };
- try {
- d.load(f);
- } finally {
- c = !0;
- }
- })();
- }
- b && this.pause_();
- }, goog.DebugLoader_.prototype.pause_ = function () {
- this.paused_ = !0;
- }, goog.DebugLoader_.prototype.resume_ = function () {
- this.paused_ && (this.paused_ = !1, this.loadDeps_());
- }, goog.DebugLoader_.prototype.loading_ = function (a) {
- this.loadingDeps_.push(a);
- }, goog.DebugLoader_.prototype.loaded_ = function (a) {
- for (var b = 0; b < this.loadingDeps_.length; b++) {
- if (this.loadingDeps_[b] == a) {
- this.loadingDeps_.splice(b, 1);
- break;
- }
- }
- for (b = 0; b < this.deferredQueue_.length; b++) {
- if (this.deferredQueue_[b] == a.path) {
- this.deferredQueue_.splice(b, 1);
- break;
- }
- }
- if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) for (; this.deferredQueue_.length;) {
- this.requested(this.deferredQueue_.shift(), !0);
- }
- a.loaded();
- }, goog.DebugLoader_.prototype.areDepsLoaded_ = function (a) {
- for (var b = 0; b < a.length; b++) {
- var c = this.getPathFromDeps_(a[b]);
- if (!c || !(c in this.deferredCallbacks_ || goog.isProvided_(a[b]))) return !1;
- }
- return !0;
- }, goog.DebugLoader_.prototype.getPathFromDeps_ = function (a) {
- return a in this.idToPath_ ? this.idToPath_[a] : a in this.dependencies_ ? a : null;
- }, goog.DebugLoader_.prototype.defer_ = function (a, b) {
- this.deferredCallbacks_[a.path] = b;
- this.deferredQueue_.push(a.path);
- }, goog.LoadController = function () {}, goog.LoadController.prototype.pause = function () {}, goog.LoadController.prototype.resume = function () {}, goog.LoadController.prototype.loaded = function () {}, goog.LoadController.prototype.pending = function () {}, goog.LoadController.prototype.registerEs6ModuleExports = function (a, b, c) {}, goog.LoadController.prototype.setModuleState = function (a) {}, goog.LoadController.prototype.clearModuleState = function () {}, goog.LoadController.prototype.defer = function (a) {}, goog.LoadController.prototype.areDepsLoaded = function () {}, goog.Dependency = function (a, b, c, d, e) {
- this.path = a;
- this.relativePath = b;
- this.provides = c;
- this.requires = d;
- this.loadFlags = e;
- this.loaded_ = !1;
- this.loadCallbacks_ = [];
- }, goog.Dependency.prototype.getPathName = function () {
- var a = this.path,
- b = a.indexOf("://");
- 0 <= b && (a = a.substring(b + 3), b = a.indexOf("/"), 0 <= b && (a = a.substring(b + 1)));
- return a;
- }, goog.Dependency.prototype.onLoad = function (a) {
- this.loaded_ ? a() : this.loadCallbacks_.push(a);
- }, goog.Dependency.prototype.loaded = function () {
- this.loaded_ = !0;
- var a = this.loadCallbacks_;
- this.loadCallbacks_ = [];
- for (var b = 0; b < a.length; b++) {
- a[b]();
- }
- }, goog.Dependency.defer_ = !1, goog.Dependency.callbackMap_ = {}, goog.Dependency.registerCallback_ = function (a) {
- var b = Math.random().toString(32);
- goog.Dependency.callbackMap_[b] = a;
- return b;
- }, goog.Dependency.unregisterCallback_ = function (a) {
- delete goog.Dependency.callbackMap_[a];
- }, goog.Dependency.callback_ = function (a, b) {
- if (a in goog.Dependency.callbackMap_) {
- for (var c = goog.Dependency.callbackMap_[a], d = [], e = 1; e < arguments.length; e++) {
- d.push(arguments[e]);
- }
- c.apply(void 0, d);
- } else throw Error("Callback key " + a + " does not exist (was base.js loaded more than once?).");
- }, goog.Dependency.prototype.load = function (a) {
- if (goog.global.CLOSURE_IMPORT_SCRIPT) goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();else if (goog.inHtmlDocument_()) {
- var b = goog.global.document;
- if ("complete" == b.readyState && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {
- if (/\bdeps.js$/.test(this.path)) {
- a.loaded();
- return;
- }
- throw Error('Cannot write "' + this.path + '" after document load');
- }
- if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) {
- var c = goog.Dependency.registerCallback_(function (b) {
- goog.DebugLoader_.IS_OLD_IE_ && "complete" != b.readyState || (goog.Dependency.unregisterCallback_(c), a.loaded());
- }),
- d = !goog.DebugLoader_.IS_OLD_IE_ && goog.getScriptNonce() ? ' nonce="' + goog.getScriptNonce() + '"' : "";
- d = '<script src="' + this.path + '" ' + (goog.DebugLoader_.IS_OLD_IE_ ? "onreadystatechange" : "onload") + "=\"goog.Dependency.callback_('" + c + '\', this)" type="text/javascript" ' + (goog.Dependency.defer_ ? "defer" : "") + d + ">\x3c/script>";
- b.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
- } else {
- var e = b.createElement("script");
- e.defer = goog.Dependency.defer_;
- e.async = !1;
- e.type = "text/javascript";
- (d = goog.getScriptNonce()) && e.setAttribute("nonce", d);
- goog.DebugLoader_.IS_OLD_IE_ ? (a.pause(), e.onreadystatechange = function () {
- if ("loaded" == e.readyState || "complete" == e.readyState) a.loaded(), a.resume();
- }) : e.onload = function () {
- e.onload = null;
- a.loaded();
- };
- e.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) : this.path;
- b.head.appendChild(e);
- }
- } else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), "deps.js" == this.relativePath ? (goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."), a.loaded()) : a.pause();
- }, goog.Es6ModuleDependency = function (a, b, c, d, e) {
- goog.Dependency.call(this, a, b, c, d, e);
- }, goog.inherits(goog.Es6ModuleDependency, goog.Dependency), goog.Es6ModuleDependency.prototype.load = function (a) {
- function b(a, b) {
- a = b ? '<script type="module" crossorigin>' + b + "\x3c/script>" : '<script type="module" crossorigin src="' + a + '">\x3c/script>';
- d.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(a) : a);
- }
- function c(a, b) {
- var c = d.createElement("script");
- c.defer = !0;
- c.async = !1;
- c.type = "module";
- c.setAttribute("crossorigin", !0);
- var e = goog.getScriptNonce();
- e && c.setAttribute("nonce", e);
- b ? c.textContent = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScript(b) : b : c.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(a) : a;
- d.head.appendChild(c);
- }
- if (goog.global.CLOSURE_IMPORT_SCRIPT) goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();else if (goog.inHtmlDocument_()) {
- var d = goog.global.document,
- e = this;
- if (goog.isDocumentLoading_()) {
- var f = b;
- goog.Dependency.defer_ = !0;
- } else f = c;
- var g = goog.Dependency.registerCallback_(function () {
- goog.Dependency.unregisterCallback_(g);
- a.setModuleState(goog.ModuleType.ES6);
- });
- f(void 0, 'goog.Dependency.callback_("' + g + '")');
- f(this.path, void 0);
- var h = goog.Dependency.registerCallback_(function (b) {
- goog.Dependency.unregisterCallback_(h);
- a.registerEs6ModuleExports(e.path, b, goog.moduleLoaderState_.moduleName);
- });
- f(void 0, 'import * as m from "' + this.path + '"; goog.Dependency.callback_("' + h + '", m)');
- var k = goog.Dependency.registerCallback_(function () {
- goog.Dependency.unregisterCallback_(k);
- a.clearModuleState();
- a.loaded();
- });
- f(void 0, 'goog.Dependency.callback_("' + k + '")');
- } else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), a.pause();
- }, goog.TransformedDependency = function (a, b, c, d, e) {
- goog.Dependency.call(this, a, b, c, d, e);
- this.contents_ = null;
- this.lazyFetch_ = !goog.inHtmlDocument_() || !("noModule" in goog.global.document.createElement("script"));
- }, goog.inherits(goog.TransformedDependency, goog.Dependency), goog.TransformedDependency.prototype.load = function (a) {
- function b() {
- e.contents_ = goog.loadFileSync_(e.path);
- e.contents_ && (e.contents_ = e.transform(e.contents_), e.contents_ && (e.contents_ += "\n//# sourceURL=" + e.path));
- }
- function c() {
- e.lazyFetch_ && b();
- if (e.contents_) {
- f && a.setModuleState(goog.ModuleType.ES6);
- try {
- var c = e.contents_;
- e.contents_ = null;
- goog.globalEval(c);
- if (f) var d = goog.moduleLoaderState_.moduleName;
- } finally {
- f && a.clearModuleState();
- }
- f && goog.global.$jscomp.require.ensure([e.getPathName()], function () {
- a.registerEs6ModuleExports(e.path, goog.global.$jscomp.require(e.getPathName()), d);
- });
- a.loaded();
- }
- }
- function d() {
- var a = goog.global.document,
- b = goog.Dependency.registerCallback_(function () {
- goog.Dependency.unregisterCallback_(b);
- c();
- }),
- d = '<script type="text/javascript">' + goog.protectScriptTag_('goog.Dependency.callback_("' + b + '");') + "\x3c/script>";
- a.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
- }
- var e = this;
- if (goog.global.CLOSURE_IMPORT_SCRIPT) b(), this.contents_ && goog.global.CLOSURE_IMPORT_SCRIPT("", this.contents_) ? (this.contents_ = null, a.loaded()) : a.pause();else {
- var f = this.loadFlags.module == goog.ModuleType.ES6;
- this.lazyFetch_ || b();
- var g = 1 < a.pending().length,
- h = g && goog.DebugLoader_.IS_OLD_IE_;
- g = goog.Dependency.defer_ && (g || goog.isDocumentLoading_());
- if (h || g) a.defer(function () {
- c();
- });else {
- var k = goog.global.document;
- h = goog.inHtmlDocument_() && "ActiveXObject" in goog.global;
- if (f && goog.inHtmlDocument_() && goog.isDocumentLoading_() && !h) {
- goog.Dependency.defer_ = !0;
- a.pause();
- var l = k.onreadystatechange;
- k.onreadystatechange = function () {
- "interactive" == k.readyState && (k.onreadystatechange = l, c(), a.resume());
- goog.isFunction(l) && l.apply(void 0, arguments);
- };
- } else !goog.DebugLoader_.IS_OLD_IE_ && goog.inHtmlDocument_() && goog.isDocumentLoading_() ? d() : c();
- }
- }
- }, goog.TransformedDependency.prototype.transform = function (a) {}, goog.TranspiledDependency = function (a, b, c, d, e, f) {
- goog.TransformedDependency.call(this, a, b, c, d, e);
- this.transpiler = f;
- }, goog.inherits(goog.TranspiledDependency, goog.TransformedDependency), goog.TranspiledDependency.prototype.transform = function (a) {
- return this.transpiler.transpile(a, this.getPathName());
- }, goog.PreTranspiledEs6ModuleDependency = function (a, b, c, d, e) {
- goog.TransformedDependency.call(this, a, b, c, d, e);
- }, goog.inherits(goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency), goog.PreTranspiledEs6ModuleDependency.prototype.transform = function (a) {
- return a;
- }, goog.GoogModuleDependency = function (a, b, c, d, e, f, g) {
- goog.TransformedDependency.call(this, a, b, c, d, e);
- this.needsTranspile_ = f;
- this.transpiler_ = g;
- }, goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency), goog.GoogModuleDependency.prototype.transform = function (a) {
- this.needsTranspile_ && (a = this.transpiler_.transpile(a, this.getPathName()));
- return goog.LOAD_MODULE_USING_EVAL && void 0 !== goog.global.JSON ? "goog.loadModule(" + goog.global.JSON.stringify(a + "\n//# sourceURL=" + this.path + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + a + "\n;return exports});\n//# sourceURL=" + this.path + "\n";
- }, goog.DebugLoader_.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.DebugLoader_.prototype.addDependency = function (a, b, c, d) {
- b = b || [];
- a = a.replace(/\\/g, "/");
- var e = goog.normalizePath_(goog.basePath + a);
- d && "boolean" !== typeof d || (d = d ? {
- module: goog.ModuleType.GOOG
- } : {});
- c = this.factory_.createDependency(e, a, b, c, d, goog.transpiler_.needsTranspile(d.lang || "es3", d.module));
- this.dependencies_[e] = c;
- for (c = 0; c < b.length; c++) {
- this.idToPath_[b[c]] = e;
- }
- this.idToPath_[a] = e;
- }, goog.DependencyFactory = function (a) {
- this.transpiler = a;
- }, goog.DependencyFactory.prototype.createDependency = function (a, b, c, d, e, f) {
- return e.module == goog.ModuleType.GOOG ? new goog.GoogModuleDependency(a, b, c, d, e, f, this.transpiler) : f ? new goog.TranspiledDependency(a, b, c, d, e, this.transpiler) : e.module == goog.ModuleType.ES6 ? "never" == goog.TRANSPILE && goog.ASSUME_ES_MODULES_TRANSPILED ? new goog.PreTranspiledEs6ModuleDependency(a, b, c, d, e) : new goog.Es6ModuleDependency(a, b, c, d, e) : new goog.Dependency(a, b, c, d, e);
- }, goog.debugLoader_ = new goog.DebugLoader_(), goog.loadClosureDeps = function () {
- goog.debugLoader_.loadClosureDeps();
- }, goog.setDependencyFactory = function (a) {
- goog.debugLoader_.setDependencyFactory(a);
- }, goog.global.CLOSURE_NO_DEPS || goog.debugLoader_.loadClosureDeps(), goog.bootstrap = function (a, b) {
- goog.debugLoader_.bootstrap(a, b);
- });
- goog.TRUSTED_TYPES_POLICY_NAME = "";
- goog.identity_ = function (a) {
- return a;
- };
- goog.createTrustedTypesPolicy = function (a) {
- var b = null,
- c = goog.global.trustedTypes || goog.global.TrustedTypes;
- if (!c || !c.createPolicy) return b;
- try {
- b = c.createPolicy(a, {
- createHTML: goog.identity_,
- createScript: goog.identity_,
- createScriptURL: goog.identity_,
- createURL: goog.identity_
- });
- } catch (d) {
- goog.logToConsole_(d.message);
- }
- return b;
- };
- goog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#base") : null;
- goog.object = {};
- goog.object.is = function (a, b) {
- return a === b ? 0 !== a || 1 / a === 1 / b : a !== a && b !== b;
- };
- goog.object.forEach = function (a, b, c) {
- for (var d in a) {
- b.call(c, a[d], d, a);
- }
- };
- goog.object.filter = function (a, b, c) {
- var d = {},
- e;
- for (e in a) {
- b.call(c, a[e], e, a) && (d[e] = a[e]);
- }
- return d;
- };
- goog.object.map = function (a, b, c) {
- var d = {},
- e;
- for (e in a) {
- d[e] = b.call(c, a[e], e, a);
- }
- return d;
- };
- goog.object.some = function (a, b, c) {
- for (var d in a) {
- if (b.call(c, a[d], d, a)) return !0;
- }
- return !1;
- };
- goog.object.every = function (a, b, c) {
- for (var d in a) {
- if (!b.call(c, a[d], d, a)) return !1;
- }
- return !0;
- };
- goog.object.getCount = function (a) {
- var b = 0,
- c;
- for (c in a) {
- b++;
- }
- return b;
- };
- goog.object.getAnyKey = function (a) {
- for (var b in a) {
- return b;
- }
- };
- goog.object.getAnyValue = function (a) {
- for (var b in a) {
- return a[b];
- }
- };
- goog.object.contains = function (a, b) {
- return goog.object.containsValue(a, b);
- };
- goog.object.getValues = function (a) {
- var b = [],
- c = 0,
- d;
- for (d in a) {
- b[c++] = a[d];
- }
- return b;
- };
- goog.object.getKeys = function (a) {
- var b = [],
- c = 0,
- d;
- for (d in a) {
- b[c++] = d;
- }
- return b;
- };
- goog.object.getValueByKeys = function (a, b) {
- var c = goog.isArrayLike(b),
- d = c ? b : arguments;
- for (c = c ? 0 : 1; c < d.length; c++) {
- if (null == a) return;
- a = a[d[c]];
- }
- return a;
- };
- goog.object.containsKey = function (a, b) {
- return null !== a && b in a;
- };
- goog.object.containsValue = function (a, b) {
- for (var c in a) {
- if (a[c] == b) return !0;
- }
- return !1;
- };
- goog.object.findKey = function (a, b, c) {
- for (var d in a) {
- if (b.call(c, a[d], d, a)) return d;
- }
- };
- goog.object.findValue = function (a, b, c) {
- return (b = goog.object.findKey(a, b, c)) && a[b];
- };
- goog.object.isEmpty = function (a) {
- for (var b in a) {
- return !1;
- }
- return !0;
- };
- goog.object.clear = function (a) {
- for (var b in a) {
- delete a[b];
- }
- };
- goog.object.remove = function (a, b) {
- var c;
- (c = b in a) && delete a[b];
- return c;
- };
- goog.object.add = function (a, b, c) {
- if (null !== a && b in a) throw Error('The object already contains the key "' + b + '"');
- goog.object.set(a, b, c);
- };
- goog.object.get = function (a, b, c) {
- return null !== a && b in a ? a[b] : c;
- };
- goog.object.set = function (a, b, c) {
- a[b] = c;
- };
- goog.object.setIfUndefined = function (a, b, c) {
- return b in a ? a[b] : a[b] = c;
- };
- goog.object.setWithReturnValueIfNotSet = function (a, b, c) {
- if (b in a) return a[b];
- c = c();
- return a[b] = c;
- };
- goog.object.equals = function (a, b) {
- for (var c in a) {
- if (!(c in b) || a[c] !== b[c]) return !1;
- }
- for (var d in b) {
- if (!(d in a)) return !1;
- }
- return !0;
- };
- goog.object.clone = function (a) {
- var b = {},
- c;
- for (c in a) {
- b[c] = a[c];
- }
- return b;
- };
- goog.object.unsafeClone = function (a) {
- var b = goog.typeOf(a);
- if ("object" == b || "array" == b) {
- if (goog.isFunction(a.clone)) return a.clone();
- b = "array" == b ? [] : {};
- for (var c in a) {
- b[c] = goog.object.unsafeClone(a[c]);
- }
- return b;
- }
- return a;
- };
- goog.object.transpose = function (a) {
- var b = {},
- c;
- for (c in a) {
- b[a[c]] = c;
- }
- return b;
- };
- goog.object.PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
- goog.object.extend = function (a, b) {
- for (var c, d, e = 1; e < arguments.length; e++) {
- d = arguments[e];
- for (c in d) {
- a[c] = d[c];
- }
- for (var f = 0; f < goog.object.PROTOTYPE_FIELDS_.length; f++) {
- c = goog.object.PROTOTYPE_FIELDS_[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
- }
- }
- };
- goog.object.create = function (a) {
- var b = arguments.length;
- if (1 == b && Array.isArray(arguments[0])) return goog.object.create.apply(null, arguments[0]);
- if (b % 2) throw Error("Uneven number of arguments");
- for (var c = {}, d = 0; d < b; d += 2) {
- c[arguments[d]] = arguments[d + 1];
- }
- return c;
- };
- goog.object.createSet = function (a) {
- var b = arguments.length;
- if (1 == b && Array.isArray(arguments[0])) return goog.object.createSet.apply(null, arguments[0]);
- for (var c = {}, d = 0; d < b; d++) {
- c[arguments[d]] = !0;
- }
- return c;
- };
- goog.object.createImmutableView = function (a) {
- var b = a;
- Object.isFrozen && !Object.isFrozen(a) && (b = Object.create(a), Object.freeze(b));
- return b;
- };
- goog.object.isImmutableView = function (a) {
- return !!Object.isFrozen && Object.isFrozen(a);
- };
- goog.object.getAllPropertyNames = function (a, b, c) {
- if (!a) return [];
- if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) return goog.object.getKeys(a);
- for (var d = {}; a && (a !== Object.prototype || b) && (a !== Function.prototype || c);) {
- for (var e = Object.getOwnPropertyNames(a), f = 0; f < e.length; f++) {
- d[e[f]] = !0;
- }
- a = Object.getPrototypeOf(a);
- }
- return goog.object.getKeys(d);
- };
- goog.object.getSuperClass = function (a) {
- return (a = Object.getPrototypeOf(a.prototype)) && a.constructor;
- };
- var jspb = {
- asserts: {}
- };
- jspb.asserts.doAssertFailure = function (a, b, c, d) {
- var e = "Assertion failed";
- if (c) {
- e += ": " + c;
- var f = d;
- } else a && (e += ": " + a, f = b);
- throw Error("" + e, f || []);
- };
- jspb.asserts.assert = function (a, b, c) {
- for (var d = [], e = 2; e < arguments.length; ++e) {
- d[e - 2] = arguments[e];
- }
- a || jspb.asserts.doAssertFailure("", null, b, d);
- return a;
- };
- jspb.asserts.assertString = function (a, b, c) {
- for (var d = [], e = 2; e < arguments.length; ++e) {
- d[e - 2] = arguments[e];
- }
- "string" !== typeof a && jspb.asserts.doAssertFailure("Expected string but got %s: %s.", [goog.typeOf(a), a], b, d);
- return a;
- };
- jspb.asserts.assertArray = function (a, b, c) {
- for (var d = [], e = 2; e < arguments.length; ++e) {
- d[e - 2] = arguments[e];
- }
- Array.isArray(a) || jspb.asserts.doAssertFailure("Expected array but got %s: %s.", [goog.typeOf(a), a], b, d);
- return a;
- };
- jspb.asserts.fail = function (a, b) {
- for (var c = [], d = 1; d < arguments.length; ++d) {
- c[d - 1] = arguments[d];
- }
- throw Error("Failure" + (a ? ": " + a : ""), c);
- };
- jspb.asserts.assertInstanceof = function (a, b, c, d) {
- for (var e = [], f = 3; f < arguments.length; ++f) {
- e[f - 3] = arguments[f];
- }
- a instanceof b || jspb.asserts.doAssertFailure("Expected instanceof %s but got %s.", [jspb.asserts.getType(b), jspb.asserts.getType(a)], c, e);
- return a;
- };
- jspb.asserts.getType = function (a) {
- return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : _typeof(a);
- };
- jspb.BinaryConstants = {};
- jspb.ConstBinaryMessage = function () {};
- jspb.BinaryMessage = function () {};
- jspb.BinaryConstants.FieldType = {
- INVALID: -1,
- DOUBLE: 1,
- FLOAT: 2,
- INT64: 3,
- UINT64: 4,
- INT32: 5,
- FIXED64: 6,
- FIXED32: 7,
- BOOL: 8,
- STRING: 9,
- GROUP: 10,
- MESSAGE: 11,
- BYTES: 12,
- UINT32: 13,
- ENUM: 14,
- SFIXED32: 15,
- SFIXED64: 16,
- SINT32: 17,
- SINT64: 18,
- FHASH64: 30,
- VHASH64: 31
- };
- jspb.BinaryConstants.WireType = {
- INVALID: -1,
- VARINT: 0,
- FIXED64: 1,
- DELIMITED: 2,
- START_GROUP: 3,
- END_GROUP: 4,
- FIXED32: 5
- };
- jspb.BinaryConstants.FieldTypeToWireType = function (a) {
- var b = jspb.BinaryConstants.FieldType,
- c = jspb.BinaryConstants.WireType;
- switch (a) {
- case b.INT32:
- case b.INT64:
- case b.UINT32:
- case b.UINT64:
- case b.SINT32:
- case b.SINT64:
- case b.BOOL:
- case b.ENUM:
- case b.VHASH64:
- return c.VARINT;
- case b.DOUBLE:
- case b.FIXED64:
- case b.SFIXED64:
- case b.FHASH64:
- return c.FIXED64;
- case b.STRING:
- case b.MESSAGE:
- case b.BYTES:
- return c.DELIMITED;
- case b.FLOAT:
- case b.FIXED32:
- case b.SFIXED32:
- return c.FIXED32;
- default:
- return c.INVALID;
- }
- };
- jspb.BinaryConstants.INVALID_FIELD_NUMBER = -1;
- jspb.BinaryConstants.FLOAT32_EPS = 1.401298464324817E-45;
- jspb.BinaryConstants.FLOAT32_MIN = 1.1754943508222875E-38;
- jspb.BinaryConstants.FLOAT32_MAX = 3.4028234663852886E38;
- jspb.BinaryConstants.FLOAT64_EPS = 4.9E-324;
- jspb.BinaryConstants.FLOAT64_MIN = 2.2250738585072014E-308;
- jspb.BinaryConstants.FLOAT64_MAX = 1.7976931348623157E308;
- jspb.BinaryConstants.TWO_TO_20 = 1048576;
- jspb.BinaryConstants.TWO_TO_23 = 8388608;
- jspb.BinaryConstants.TWO_TO_31 = 2147483648;
- jspb.BinaryConstants.TWO_TO_32 = 4294967296;
- jspb.BinaryConstants.TWO_TO_52 = 4503599627370496;
- jspb.BinaryConstants.TWO_TO_63 = 0x7fffffffffffffff;
- jspb.BinaryConstants.TWO_TO_64 = 1.8446744073709552E19;
- jspb.BinaryConstants.ZERO_HASH = "\x00\x00\x00\x00\x00\x00\x00\x00";
- goog.debug = {};
- goog.debug.Error = function (a) {
- if (Error.captureStackTrace) Error.captureStackTrace(this, goog.debug.Error);else {
- var b = Error().stack;
- b && (this.stack = b);
- }
- a && (this.message = String(a));
- this.reportErrorToServer = !0;
- };
- goog.inherits(goog.debug.Error, Error);
- goog.debug.Error.prototype.name = "CustomError";
- goog.dom = {};
- goog.dom.NodeType = {
- ELEMENT: 1,
- ATTRIBUTE: 2,
- TEXT: 3,
- CDATA_SECTION: 4,
- ENTITY_REFERENCE: 5,
- ENTITY: 6,
- PROCESSING_INSTRUCTION: 7,
- COMMENT: 8,
- DOCUMENT: 9,
- DOCUMENT_TYPE: 10,
- DOCUMENT_FRAGMENT: 11,
- NOTATION: 12
- };
- goog.asserts = {};
- goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
- goog.asserts.AssertionError = function (a, b) {
- goog.debug.Error.call(this, goog.asserts.subs_(a, b));
- this.messagePattern = a;
- };
- goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
- goog.asserts.AssertionError.prototype.name = "AssertionError";
- goog.asserts.DEFAULT_ERROR_HANDLER = function (a) {
- throw a;
- };
- goog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;
- goog.asserts.subs_ = function (a, b) {
- a = a.split("%s");
- for (var c = "", d = a.length - 1, e = 0; e < d; e++) {
- c += a[e] + (e < b.length ? b[e] : "%s");
- }
- return c + a[d];
- };
- goog.asserts.doAssertFailure_ = function (a, b, c, d) {
- var e = "Assertion failed";
- if (c) {
- e += ": " + c;
- var f = d;
- } else a && (e += ": " + a, f = b);
- a = new goog.asserts.AssertionError("" + e, f || []);
- goog.asserts.errorHandler_(a);
- };
- goog.asserts.setErrorHandler = function (a) {
- goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a);
- };
- goog.asserts.assert = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && !a && goog.asserts.doAssertFailure_("", null, b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertExists = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && null == a && goog.asserts.doAssertFailure_("Expected to exist: %s.", [a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.fail = function (a, b) {
- goog.asserts.ENABLE_ASSERTS && goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1)));
- };
- goog.asserts.assertNumber = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && "number" !== typeof a && goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertString = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && "string" !== typeof a && goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertFunction = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && !goog.isFunction(a) && goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertObject = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && !goog.isObject(a) && goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertArray = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && !Array.isArray(a) && goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertBoolean = function (a, b, c) {
- goog.asserts.ENABLE_ASSERTS && "boolean" !== typeof a && goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertElement = function (a, b, c) {
- !goog.asserts.ENABLE_ASSERTS || goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT || goog.asserts.doAssertFailure_("Expected Element but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertInstanceof = function (a, b, c, d) {
- !goog.asserts.ENABLE_ASSERTS || a instanceof b || goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.", [goog.asserts.getType_(b), goog.asserts.getType_(a)], c, Array.prototype.slice.call(arguments, 3));
- return a;
- };
- goog.asserts.assertFinite = function (a, b, c) {
- !goog.asserts.ENABLE_ASSERTS || "number" == typeof a && isFinite(a) || goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.", [a], b, Array.prototype.slice.call(arguments, 2));
- return a;
- };
- goog.asserts.assertObjectPrototypeIsIntact = function () {
- for (var a in Object.prototype) {
- goog.asserts.fail(a + " should not be enumerable in Object.prototype.");
- }
- };
- goog.asserts.getType_ = function (a) {
- return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : _typeof(a);
- };
- goog.array = {};
- goog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE;
- goog.array.ASSUME_NATIVE_FUNCTIONS = 2012 < goog.FEATURESET_YEAR;
- goog.array.peek = function (a) {
- return a[a.length - 1];
- };
- goog.array.last = goog.array.peek;
- goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.indexOf.call(a, b, c);
- } : function (a, b, c) {
- c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
- if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, c);
- for (; c < a.length; c++) {
- if (c in a && a[c] === b) return c;
- }
- return -1;
- };
- goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.lastIndexOf.call(a, b, null == c ? a.length - 1 : c);
- } : function (a, b, c) {
- c = null == c ? a.length - 1 : c;
- 0 > c && (c = Math.max(0, a.length + c));
- if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.lastIndexOf(b, c);
- for (; 0 <= c; c--) {
- if (c in a && a[c] === b) return c;
- }
- return -1;
- };
- goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- Array.prototype.forEach.call(a, b, c);
- } : function (a, b, c) {
- for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
- f in e && b.call(c, e[f], f, a);
- }
- };
- goog.array.forEachRight = function (a, b, c) {
- var d = a.length,
- e = "string" === typeof a ? a.split("") : a;
- for (--d; 0 <= d; --d) {
- d in e && b.call(c, e[d], d, a);
- }
- };
- goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.filter.call(a, b, c);
- } : function (a, b, c) {
- for (var d = a.length, e = [], f = 0, g = "string" === typeof a ? a.split("") : a, h = 0; h < d; h++) {
- if (h in g) {
- var k = g[h];
- b.call(c, k, h, a) && (e[f++] = k);
- }
- }
- return e;
- };
- goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.map.call(a, b, c);
- } : function (a, b, c) {
- for (var d = a.length, e = Array(d), f = "string" === typeof a ? a.split("") : a, g = 0; g < d; g++) {
- g in f && (e[g] = b.call(c, f[g], g, a));
- }
- return e;
- };
- goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function (a, b, c, d) {
- goog.asserts.assert(null != a.length);
- d && (b = goog.bind(b, d));
- return Array.prototype.reduce.call(a, b, c);
- } : function (a, b, c, d) {
- var e = c;
- goog.array.forEach(a, function (c, g) {
- e = b.call(d, e, c, g, a);
- });
- return e;
- };
- goog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function (a, b, c, d) {
- goog.asserts.assert(null != a.length);
- goog.asserts.assert(null != b);
- d && (b = goog.bind(b, d));
- return Array.prototype.reduceRight.call(a, b, c);
- } : function (a, b, c, d) {
- var e = c;
- goog.array.forEachRight(a, function (c, g) {
- e = b.call(d, e, c, g, a);
- });
- return e;
- };
- goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.some.call(a, b, c);
- } : function (a, b, c) {
- for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
- if (f in e && b.call(c, e[f], f, a)) return !0;
- }
- return !1;
- };
- goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.every.call(a, b, c);
- } : function (a, b, c) {
- for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
- if (f in e && !b.call(c, e[f], f, a)) return !1;
- }
- return !0;
- };
- goog.array.count = function (a, b, c) {
- var d = 0;
- goog.array.forEach(a, function (a, f, g) {
- b.call(c, a, f, g) && ++d;
- }, c);
- return d;
- };
- goog.array.find = function (a, b, c) {
- b = goog.array.findIndex(a, b, c);
- return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
- };
- goog.array.findIndex = function (a, b, c) {
- for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
- if (f in e && b.call(c, e[f], f, a)) return f;
- }
- return -1;
- };
- goog.array.findRight = function (a, b, c) {
- b = goog.array.findIndexRight(a, b, c);
- return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
- };
- goog.array.findIndexRight = function (a, b, c) {
- var d = a.length,
- e = "string" === typeof a ? a.split("") : a;
- for (--d; 0 <= d; d--) {
- if (d in e && b.call(c, e[d], d, a)) return d;
- }
- return -1;
- };
- goog.array.contains = function (a, b) {
- return 0 <= goog.array.indexOf(a, b);
- };
- goog.array.isEmpty = function (a) {
- return 0 == a.length;
- };
- goog.array.clear = function (a) {
- if (!Array.isArray(a)) for (var b = a.length - 1; 0 <= b; b--) {
- delete a[b];
- }
- a.length = 0;
- };
- goog.array.insert = function (a, b) {
- goog.array.contains(a, b) || a.push(b);
- };
- goog.array.insertAt = function (a, b, c) {
- goog.array.splice(a, c, 0, b);
- };
- goog.array.insertArrayAt = function (a, b, c) {
- goog.partial(goog.array.splice, a, c, 0).apply(null, b);
- };
- goog.array.insertBefore = function (a, b, c) {
- var d;
- 2 == arguments.length || 0 > (d = goog.array.indexOf(a, c)) ? a.push(b) : goog.array.insertAt(a, b, d);
- };
- goog.array.remove = function (a, b) {
- b = goog.array.indexOf(a, b);
- var c;
- (c = 0 <= b) && goog.array.removeAt(a, b);
- return c;
- };
- goog.array.removeLast = function (a, b) {
- b = goog.array.lastIndexOf(a, b);
- return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
- };
- goog.array.removeAt = function (a, b) {
- goog.asserts.assert(null != a.length);
- return 1 == Array.prototype.splice.call(a, b, 1).length;
- };
- goog.array.removeIf = function (a, b, c) {
- b = goog.array.findIndex(a, b, c);
- return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
- };
- goog.array.removeAllIf = function (a, b, c) {
- var d = 0;
- goog.array.forEachRight(a, function (e, f) {
- b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++;
- });
- return d;
- };
- goog.array.concat = function (a) {
- return Array.prototype.concat.apply([], arguments);
- };
- goog.array.join = function (a) {
- return Array.prototype.concat.apply([], arguments);
- };
- goog.array.toArray = function (a) {
- var b = a.length;
- if (0 < b) {
- for (var c = Array(b), d = 0; d < b; d++) {
- c[d] = a[d];
- }
- return c;
- }
- return [];
- };
- goog.array.clone = goog.array.toArray;
- goog.array.extend = function (a, b) {
- for (var c = 1; c < arguments.length; c++) {
- var d = arguments[c];
- if (goog.isArrayLike(d)) {
- var e = a.length || 0,
- f = d.length || 0;
- a.length = e + f;
- for (var g = 0; g < f; g++) {
- a[e + g] = d[g];
- }
- } else a.push(d);
- }
- };
- goog.array.splice = function (a, b, c, d) {
- goog.asserts.assert(null != a.length);
- return Array.prototype.splice.apply(a, goog.array.slice(arguments, 1));
- };
- goog.array.slice = function (a, b, c) {
- goog.asserts.assert(null != a.length);
- return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c);
- };
- goog.array.removeDuplicates = function (a, b, c) {
- b = b || a;
- var d = function d(a) {
- return goog.isObject(a) ? "o" + goog.getUid(a) : _typeof(a).charAt(0) + a;
- };
- c = c || d;
- d = {};
- for (var e = 0, f = 0; f < a.length;) {
- var g = a[f++],
- h = c(g);
- Object.prototype.hasOwnProperty.call(d, h) || (d[h] = !0, b[e++] = g);
- }
- b.length = e;
- };
- goog.array.binarySearch = function (a, b, c) {
- return goog.array.binarySearch_(a, c || goog.array.defaultCompare, !1, b);
- };
- goog.array.binarySelect = function (a, b, c) {
- return goog.array.binarySearch_(a, b, !0, void 0, c);
- };
- goog.array.binarySearch_ = function (a, b, c, d, e) {
- for (var f = 0, g = a.length, h; f < g;) {
- var k = f + (g - f >>> 1);
- var l = c ? b.call(e, a[k], k, a) : b(d, a[k]);
- 0 < l ? f = k + 1 : (g = k, h = !l);
- }
- return h ? f : -f - 1;
- };
- goog.array.sort = function (a, b) {
- a.sort(b || goog.array.defaultCompare);
- };
- goog.array.stableSort = function (a, b) {
- for (var c = Array(a.length), d = 0; d < a.length; d++) {
- c[d] = {
- index: d,
- value: a[d]
- };
- }
- var e = b || goog.array.defaultCompare;
- goog.array.sort(c, function (a, b) {
- return e(a.value, b.value) || a.index - b.index;
- });
- for (d = 0; d < a.length; d++) {
- a[d] = c[d].value;
- }
- };
- goog.array.sortByKey = function (a, b, c) {
- var d = c || goog.array.defaultCompare;
- goog.array.sort(a, function (a, c) {
- return d(b(a), b(c));
- });
- };
- goog.array.sortObjectsByKey = function (a, b, c) {
- goog.array.sortByKey(a, function (a) {
- return a[b];
- }, c);
- };
- goog.array.isSorted = function (a, b, c) {
- b = b || goog.array.defaultCompare;
- for (var d = 1; d < a.length; d++) {
- var e = b(a[d - 1], a[d]);
- if (0 < e || 0 == e && c) return !1;
- }
- return !0;
- };
- goog.array.equals = function (a, b, c) {
- if (!goog.isArrayLike(a) || !goog.isArrayLike(b) || a.length != b.length) return !1;
- var d = a.length;
- c = c || goog.array.defaultCompareEquality;
- for (var e = 0; e < d; e++) {
- if (!c(a[e], b[e])) return !1;
- }
- return !0;
- };
- goog.array.compare3 = function (a, b, c) {
- c = c || goog.array.defaultCompare;
- for (var d = Math.min(a.length, b.length), e = 0; e < d; e++) {
- var f = c(a[e], b[e]);
- if (0 != f) return f;
- }
- return goog.array.defaultCompare(a.length, b.length);
- };
- goog.array.defaultCompare = function (a, b) {
- return a > b ? 1 : a < b ? -1 : 0;
- };
- goog.array.inverseDefaultCompare = function (a, b) {
- return -goog.array.defaultCompare(a, b);
- };
- goog.array.defaultCompareEquality = function (a, b) {
- return a === b;
- };
- goog.array.binaryInsert = function (a, b, c) {
- c = goog.array.binarySearch(a, b, c);
- return 0 > c ? (goog.array.insertAt(a, b, -(c + 1)), !0) : !1;
- };
- goog.array.binaryRemove = function (a, b, c) {
- b = goog.array.binarySearch(a, b, c);
- return 0 <= b ? goog.array.removeAt(a, b) : !1;
- };
- goog.array.bucket = function (a, b, c) {
- for (var d = {}, e = 0; e < a.length; e++) {
- var f = a[e],
- g = b.call(c, f, e, a);
- void 0 !== g && (d[g] || (d[g] = [])).push(f);
- }
- return d;
- };
- goog.array.toObject = function (a, b, c) {
- var d = {};
- goog.array.forEach(a, function (e, f) {
- d[b.call(c, e, f, a)] = e;
- });
- return d;
- };
- goog.array.range = function (a, b, c) {
- var d = [],
- e = 0,
- f = a;
- c = c || 1;
- void 0 !== b && (e = a, f = b);
- if (0 > c * (f - e)) return [];
- if (0 < c) for (a = e; a < f; a += c) {
- d.push(a);
- } else for (a = e; a > f; a += c) {
- d.push(a);
- }
- return d;
- };
- goog.array.repeat = function (a, b) {
- for (var c = [], d = 0; d < b; d++) {
- c[d] = a;
- }
- return c;
- };
- goog.array.flatten = function (a) {
- for (var b = [], c = 0; c < arguments.length; c++) {
- var d = arguments[c];
- if (Array.isArray(d)) for (var e = 0; e < d.length; e += 8192) {
- var f = goog.array.slice(d, e, e + 8192);
- f = goog.array.flatten.apply(null, f);
- for (var g = 0; g < f.length; g++) {
- b.push(f[g]);
- }
- } else b.push(d);
- }
- return b;
- };
- goog.array.rotate = function (a, b) {
- goog.asserts.assert(null != a.length);
- a.length && (b %= a.length, 0 < b ? Array.prototype.unshift.apply(a, a.splice(-b, b)) : 0 > b && Array.prototype.push.apply(a, a.splice(0, -b)));
- return a;
- };
- goog.array.moveItem = function (a, b, c) {
- goog.asserts.assert(0 <= b && b < a.length);
- goog.asserts.assert(0 <= c && c < a.length);
- b = Array.prototype.splice.call(a, b, 1);
- Array.prototype.splice.call(a, c, 0, b[0]);
- };
- goog.array.zip = function (a) {
- if (!arguments.length) return [];
- for (var b = [], c = arguments[0].length, d = 1; d < arguments.length; d++) {
- arguments[d].length < c && (c = arguments[d].length);
- }
- for (d = 0; d < c; d++) {
- for (var e = [], f = 0; f < arguments.length; f++) {
- e.push(arguments[f][d]);
- }
- b.push(e);
- }
- return b;
- };
- goog.array.shuffle = function (a, b) {
- b = b || Math.random;
- for (var c = a.length - 1; 0 < c; c--) {
- var d = Math.floor(b() * (c + 1)),
- e = a[c];
- a[c] = a[d];
- a[d] = e;
- }
- };
- goog.array.copyByIndex = function (a, b) {
- var c = [];
- goog.array.forEach(b, function (b) {
- c.push(a[b]);
- });
- return c;
- };
- goog.array.concatMap = function (a, b, c) {
- return goog.array.concat.apply([], goog.array.map(a, b, c));
- };
- goog.crypt = {};
- goog.crypt.stringToByteArray = function (a) {
- for (var b = [], c = 0, d = 0; d < a.length; d++) {
- var e = a.charCodeAt(d);
- 255 < e && (b[c++] = e & 255, e >>= 8);
- b[c++] = e;
- }
- return b;
- };
- goog.crypt.byteArrayToString = function (a) {
- if (8192 >= a.length) return String.fromCharCode.apply(null, a);
- for (var b = "", c = 0; c < a.length; c += 8192) {
- var d = goog.array.slice(a, c, c + 8192);
- b += String.fromCharCode.apply(null, d);
- }
- return b;
- };
- goog.crypt.byteArrayToHex = function (a, b) {
- return goog.array.map(a, function (a) {
- a = a.toString(16);
- return 1 < a.length ? a : "0" + a;
- }).join(b || "");
- };
- goog.crypt.hexToByteArray = function (a) {
- goog.asserts.assert(0 == a.length % 2, "Key string length must be multiple of 2");
- for (var b = [], c = 0; c < a.length; c += 2) {
- b.push(parseInt(a.substring(c, c + 2), 16));
- }
- return b;
- };
- goog.crypt.stringToUtf8ByteArray = function (a) {
- for (var b = [], c = 0, d = 0; d < a.length; d++) {
- var e = a.charCodeAt(d);
- 128 > e ? b[c++] = e : (2048 > e ? b[c++] = e >> 6 | 192 : (55296 == (e & 64512) && d + 1 < a.length && 56320 == (a.charCodeAt(d + 1) & 64512) ? (e = 65536 + ((e & 1023) << 10) + (a.charCodeAt(++d) & 1023), b[c++] = e >> 18 | 240, b[c++] = e >> 12 & 63 | 128) : b[c++] = e >> 12 | 224, b[c++] = e >> 6 & 63 | 128), b[c++] = e & 63 | 128);
- }
- return b;
- };
- goog.crypt.utf8ByteArrayToString = function (a) {
- for (var b = [], c = 0, d = 0; c < a.length;) {
- var e = a[c++];
- if (128 > e) b[d++] = String.fromCharCode(e);else if (191 < e && 224 > e) {
- var f = a[c++];
- b[d++] = String.fromCharCode((e & 31) << 6 | f & 63);
- } else if (239 < e && 365 > e) {
- f = a[c++];
- var g = a[c++],
- h = a[c++];
- e = ((e & 7) << 18 | (f & 63) << 12 | (g & 63) << 6 | h & 63) - 65536;
- b[d++] = String.fromCharCode(55296 + (e >> 10));
- b[d++] = String.fromCharCode(56320 + (e & 1023));
- } else f = a[c++], g = a[c++], b[d++] = String.fromCharCode((e & 15) << 12 | (f & 63) << 6 | g & 63);
- }
- return b.join("");
- };
- goog.crypt.xorByteArray = function (a, b) {
- goog.asserts.assert(a.length == b.length, "XOR array lengths must match");
- for (var c = [], d = 0; d < a.length; d++) {
- c.push(a[d] ^ b[d]);
- }
- return c;
- };
- goog.dom.asserts = {};
- goog.dom.asserts.assertIsLocation = function (a) {
- if (goog.asserts.ENABLE_ASSERTS) {
- var b = goog.dom.asserts.getWindow_(a);
- b && (!a || !(a instanceof b.Location) && a instanceof b.Element) && goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s", goog.dom.asserts.debugStringForType_(a));
- }
- return a;
- };
- goog.dom.asserts.assertIsElementType_ = function (a, b) {
- if (goog.asserts.ENABLE_ASSERTS) {
- var c = goog.dom.asserts.getWindow_(a);
- c && "undefined" != typeof c[b] && (a && (a instanceof c[b] || !(a instanceof c.Location || a instanceof c.Element)) || goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s", b, goog.dom.asserts.debugStringForType_(a)));
- }
- return a;
- };
- goog.dom.asserts.assertIsHTMLAnchorElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLAnchorElement");
- };
- goog.dom.asserts.assertIsHTMLButtonElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLButtonElement");
- };
- goog.dom.asserts.assertIsHTMLLinkElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLLinkElement");
- };
- goog.dom.asserts.assertIsHTMLImageElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLImageElement");
- };
- goog.dom.asserts.assertIsHTMLAudioElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLAudioElement");
- };
- goog.dom.asserts.assertIsHTMLVideoElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLVideoElement");
- };
- goog.dom.asserts.assertIsHTMLInputElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLInputElement");
- };
- goog.dom.asserts.assertIsHTMLTextAreaElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLTextAreaElement");
- };
- goog.dom.asserts.assertIsHTMLCanvasElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLCanvasElement");
- };
- goog.dom.asserts.assertIsHTMLEmbedElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLEmbedElement");
- };
- goog.dom.asserts.assertIsHTMLFormElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLFormElement");
- };
- goog.dom.asserts.assertIsHTMLFrameElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLFrameElement");
- };
- goog.dom.asserts.assertIsHTMLIFrameElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLIFrameElement");
- };
- goog.dom.asserts.assertIsHTMLObjectElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLObjectElement");
- };
- goog.dom.asserts.assertIsHTMLScriptElement = function (a) {
- return goog.dom.asserts.assertIsElementType_(a, "HTMLScriptElement");
- };
- goog.dom.asserts.debugStringForType_ = function (a) {
- if (goog.isObject(a)) try {
- return a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a);
- } catch (b) {
- return "<object could not be stringified>";
- } else return void 0 === a ? "undefined" : null === a ? "null" : _typeof(a);
- };
- goog.dom.asserts.getWindow_ = function (a) {
- try {
- var b = a && a.ownerDocument,
- c = b && (b.defaultView || b.parentWindow);
- c = c || goog.global;
- if (c.Element && c.Location) return c;
- } catch (d) {}
- return null;
- };
- goog.functions = {};
- goog.functions.constant = function (a) {
- return function () {
- return a;
- };
- };
- goog.functions.FALSE = function () {
- return !1;
- };
- goog.functions.TRUE = function () {
- return !0;
- };
- goog.functions.NULL = function () {
- return null;
- };
- goog.functions.identity = function (a, b) {
- return a;
- };
- goog.functions.error = function (a) {
- return function () {
- throw Error(a);
- };
- };
- goog.functions.fail = function (a) {
- return function () {
- throw a;
- };
- };
- goog.functions.lock = function (a, b) {
- b = b || 0;
- return function () {
- return a.apply(this, Array.prototype.slice.call(arguments, 0, b));
- };
- };
- goog.functions.nth = function (a) {
- return function () {
- return arguments[a];
- };
- };
- goog.functions.partialRight = function (a, b) {
- var c = Array.prototype.slice.call(arguments, 1);
- return function () {
- var b = Array.prototype.slice.call(arguments);
- b.push.apply(b, c);
- return a.apply(this, b);
- };
- };
- goog.functions.withReturnValue = function (a, b) {
- return goog.functions.sequence(a, goog.functions.constant(b));
- };
- goog.functions.equalTo = function (a, b) {
- return function (c) {
- return b ? a == c : a === c;
- };
- };
- goog.functions.compose = function (a, b) {
- var c = arguments,
- d = c.length;
- return function () {
- var a;
- d && (a = c[d - 1].apply(this, arguments));
- for (var b = d - 2; 0 <= b; b--) {
- a = c[b].call(this, a);
- }
- return a;
- };
- };
- goog.functions.sequence = function (a) {
- var b = arguments,
- c = b.length;
- return function () {
- for (var a, e = 0; e < c; e++) {
- a = b[e].apply(this, arguments);
- }
- return a;
- };
- };
- goog.functions.and = function (a) {
- var b = arguments,
- c = b.length;
- return function () {
- for (var a = 0; a < c; a++) {
- if (!b[a].apply(this, arguments)) return !1;
- }
- return !0;
- };
- };
- goog.functions.or = function (a) {
- var b = arguments,
- c = b.length;
- return function () {
- for (var a = 0; a < c; a++) {
- if (b[a].apply(this, arguments)) return !0;
- }
- return !1;
- };
- };
- goog.functions.not = function (a) {
- return function () {
- return !a.apply(this, arguments);
- };
- };
- goog.functions.create = function (a, b) {
- var c = function c() {};
- c.prototype = a.prototype;
- c = new c();
- a.apply(c, Array.prototype.slice.call(arguments, 1));
- return c;
- };
- goog.functions.CACHE_RETURN_VALUE = !0;
- goog.functions.cacheReturnValue = function (a) {
- var b = !1,
- c;
- return function () {
- if (!goog.functions.CACHE_RETURN_VALUE) return a();
- b || (c = a(), b = !0);
- return c;
- };
- };
- goog.functions.once = function (a) {
- var b = a;
- return function () {
- if (b) {
- var a = b;
- b = null;
- a();
- }
- };
- };
- goog.functions.debounce = function (a, b, c) {
- var d = 0;
- return function (e) {
- goog.global.clearTimeout(d);
- var f = arguments;
- d = goog.global.setTimeout(function () {
- a.apply(c, f);
- }, b);
- };
- };
- goog.functions.throttle = function (a, b, c) {
- var d = 0,
- e = !1,
- f = [],
- g = function g() {
- d = 0;
- e && (e = !1, h());
- },
- h = function h() {
- d = goog.global.setTimeout(g, b);
- a.apply(c, f);
- };
- return function (a) {
- f = arguments;
- d ? e = !0 : h();
- };
- };
- goog.functions.rateLimit = function (a, b, c) {
- var d = 0,
- e = function e() {
- d = 0;
- };
- return function (f) {
- d || (d = goog.global.setTimeout(e, b), a.apply(c, arguments));
- };
- };
- goog.dom.HtmlElement = function () {};
- goog.dom.TagName = function (a) {
- this.tagName_ = a;
- };
- goog.dom.TagName.prototype.toString = function () {
- return this.tagName_;
- };
- goog.dom.TagName.A = new goog.dom.TagName("A");
- goog.dom.TagName.ABBR = new goog.dom.TagName("ABBR");
- goog.dom.TagName.ACRONYM = new goog.dom.TagName("ACRONYM");
- goog.dom.TagName.ADDRESS = new goog.dom.TagName("ADDRESS");
- goog.dom.TagName.APPLET = new goog.dom.TagName("APPLET");
- goog.dom.TagName.AREA = new goog.dom.TagName("AREA");
- goog.dom.TagName.ARTICLE = new goog.dom.TagName("ARTICLE");
- goog.dom.TagName.ASIDE = new goog.dom.TagName("ASIDE");
- goog.dom.TagName.AUDIO = new goog.dom.TagName("AUDIO");
- goog.dom.TagName.B = new goog.dom.TagName("B");
- goog.dom.TagName.BASE = new goog.dom.TagName("BASE");
- goog.dom.TagName.BASEFONT = new goog.dom.TagName("BASEFONT");
- goog.dom.TagName.BDI = new goog.dom.TagName("BDI");
- goog.dom.TagName.BDO = new goog.dom.TagName("BDO");
- goog.dom.TagName.BIG = new goog.dom.TagName("BIG");
- goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName("BLOCKQUOTE");
- goog.dom.TagName.BODY = new goog.dom.TagName("BODY");
- goog.dom.TagName.BR = new goog.dom.TagName("BR");
- goog.dom.TagName.BUTTON = new goog.dom.TagName("BUTTON");
- goog.dom.TagName.CANVAS = new goog.dom.TagName("CANVAS");
- goog.dom.TagName.CAPTION = new goog.dom.TagName("CAPTION");
- goog.dom.TagName.CENTER = new goog.dom.TagName("CENTER");
- goog.dom.TagName.CITE = new goog.dom.TagName("CITE");
- goog.dom.TagName.CODE = new goog.dom.TagName("CODE");
- goog.dom.TagName.COL = new goog.dom.TagName("COL");
- goog.dom.TagName.COLGROUP = new goog.dom.TagName("COLGROUP");
- goog.dom.TagName.COMMAND = new goog.dom.TagName("COMMAND");
- goog.dom.TagName.DATA = new goog.dom.TagName("DATA");
- goog.dom.TagName.DATALIST = new goog.dom.TagName("DATALIST");
- goog.dom.TagName.DD = new goog.dom.TagName("DD");
- goog.dom.TagName.DEL = new goog.dom.TagName("DEL");
- goog.dom.TagName.DETAILS = new goog.dom.TagName("DETAILS");
- goog.dom.TagName.DFN = new goog.dom.TagName("DFN");
- goog.dom.TagName.DIALOG = new goog.dom.TagName("DIALOG");
- goog.dom.TagName.DIR = new goog.dom.TagName("DIR");
- goog.dom.TagName.DIV = new goog.dom.TagName("DIV");
- goog.dom.TagName.DL = new goog.dom.TagName("DL");
- goog.dom.TagName.DT = new goog.dom.TagName("DT");
- goog.dom.TagName.EM = new goog.dom.TagName("EM");
- goog.dom.TagName.EMBED = new goog.dom.TagName("EMBED");
- goog.dom.TagName.FIELDSET = new goog.dom.TagName("FIELDSET");
- goog.dom.TagName.FIGCAPTION = new goog.dom.TagName("FIGCAPTION");
- goog.dom.TagName.FIGURE = new goog.dom.TagName("FIGURE");
- goog.dom.TagName.FONT = new goog.dom.TagName("FONT");
- goog.dom.TagName.FOOTER = new goog.dom.TagName("FOOTER");
- goog.dom.TagName.FORM = new goog.dom.TagName("FORM");
- goog.dom.TagName.FRAME = new goog.dom.TagName("FRAME");
- goog.dom.TagName.FRAMESET = new goog.dom.TagName("FRAMESET");
- goog.dom.TagName.H1 = new goog.dom.TagName("H1");
- goog.dom.TagName.H2 = new goog.dom.TagName("H2");
- goog.dom.TagName.H3 = new goog.dom.TagName("H3");
- goog.dom.TagName.H4 = new goog.dom.TagName("H4");
- goog.dom.TagName.H5 = new goog.dom.TagName("H5");
- goog.dom.TagName.H6 = new goog.dom.TagName("H6");
- goog.dom.TagName.HEAD = new goog.dom.TagName("HEAD");
- goog.dom.TagName.HEADER = new goog.dom.TagName("HEADER");
- goog.dom.TagName.HGROUP = new goog.dom.TagName("HGROUP");
- goog.dom.TagName.HR = new goog.dom.TagName("HR");
- goog.dom.TagName.HTML = new goog.dom.TagName("HTML");
- goog.dom.TagName.I = new goog.dom.TagName("I");
- goog.dom.TagName.IFRAME = new goog.dom.TagName("IFRAME");
- goog.dom.TagName.IMG = new goog.dom.TagName("IMG");
- goog.dom.TagName.INPUT = new goog.dom.TagName("INPUT");
- goog.dom.TagName.INS = new goog.dom.TagName("INS");
- goog.dom.TagName.ISINDEX = new goog.dom.TagName("ISINDEX");
- goog.dom.TagName.KBD = new goog.dom.TagName("KBD");
- goog.dom.TagName.KEYGEN = new goog.dom.TagName("KEYGEN");
- goog.dom.TagName.LABEL = new goog.dom.TagName("LABEL");
- goog.dom.TagName.LEGEND = new goog.dom.TagName("LEGEND");
- goog.dom.TagName.LI = new goog.dom.TagName("LI");
- goog.dom.TagName.LINK = new goog.dom.TagName("LINK");
- goog.dom.TagName.MAIN = new goog.dom.TagName("MAIN");
- goog.dom.TagName.MAP = new goog.dom.TagName("MAP");
- goog.dom.TagName.MARK = new goog.dom.TagName("MARK");
- goog.dom.TagName.MATH = new goog.dom.TagName("MATH");
- goog.dom.TagName.MENU = new goog.dom.TagName("MENU");
- goog.dom.TagName.MENUITEM = new goog.dom.TagName("MENUITEM");
- goog.dom.TagName.META = new goog.dom.TagName("META");
- goog.dom.TagName.METER = new goog.dom.TagName("METER");
- goog.dom.TagName.NAV = new goog.dom.TagName("NAV");
- goog.dom.TagName.NOFRAMES = new goog.dom.TagName("NOFRAMES");
- goog.dom.TagName.NOSCRIPT = new goog.dom.TagName("NOSCRIPT");
- goog.dom.TagName.OBJECT = new goog.dom.TagName("OBJECT");
- goog.dom.TagName.OL = new goog.dom.TagName("OL");
- goog.dom.TagName.OPTGROUP = new goog.dom.TagName("OPTGROUP");
- goog.dom.TagName.OPTION = new goog.dom.TagName("OPTION");
- goog.dom.TagName.OUTPUT = new goog.dom.TagName("OUTPUT");
- goog.dom.TagName.P = new goog.dom.TagName("P");
- goog.dom.TagName.PARAM = new goog.dom.TagName("PARAM");
- goog.dom.TagName.PICTURE = new goog.dom.TagName("PICTURE");
- goog.dom.TagName.PRE = new goog.dom.TagName("PRE");
- goog.dom.TagName.PROGRESS = new goog.dom.TagName("PROGRESS");
- goog.dom.TagName.Q = new goog.dom.TagName("Q");
- goog.dom.TagName.RP = new goog.dom.TagName("RP");
- goog.dom.TagName.RT = new goog.dom.TagName("RT");
- goog.dom.TagName.RTC = new goog.dom.TagName("RTC");
- goog.dom.TagName.RUBY = new goog.dom.TagName("RUBY");
- goog.dom.TagName.S = new goog.dom.TagName("S");
- goog.dom.TagName.SAMP = new goog.dom.TagName("SAMP");
- goog.dom.TagName.SCRIPT = new goog.dom.TagName("SCRIPT");
- goog.dom.TagName.SECTION = new goog.dom.TagName("SECTION");
- goog.dom.TagName.SELECT = new goog.dom.TagName("SELECT");
- goog.dom.TagName.SMALL = new goog.dom.TagName("SMALL");
- goog.dom.TagName.SOURCE = new goog.dom.TagName("SOURCE");
- goog.dom.TagName.SPAN = new goog.dom.TagName("SPAN");
- goog.dom.TagName.STRIKE = new goog.dom.TagName("STRIKE");
- goog.dom.TagName.STRONG = new goog.dom.TagName("STRONG");
- goog.dom.TagName.STYLE = new goog.dom.TagName("STYLE");
- goog.dom.TagName.SUB = new goog.dom.TagName("SUB");
- goog.dom.TagName.SUMMARY = new goog.dom.TagName("SUMMARY");
- goog.dom.TagName.SUP = new goog.dom.TagName("SUP");
- goog.dom.TagName.SVG = new goog.dom.TagName("SVG");
- goog.dom.TagName.TABLE = new goog.dom.TagName("TABLE");
- goog.dom.TagName.TBODY = new goog.dom.TagName("TBODY");
- goog.dom.TagName.TD = new goog.dom.TagName("TD");
- goog.dom.TagName.TEMPLATE = new goog.dom.TagName("TEMPLATE");
- goog.dom.TagName.TEXTAREA = new goog.dom.TagName("TEXTAREA");
- goog.dom.TagName.TFOOT = new goog.dom.TagName("TFOOT");
- goog.dom.TagName.TH = new goog.dom.TagName("TH");
- goog.dom.TagName.THEAD = new goog.dom.TagName("THEAD");
- goog.dom.TagName.TIME = new goog.dom.TagName("TIME");
- goog.dom.TagName.TITLE = new goog.dom.TagName("TITLE");
- goog.dom.TagName.TR = new goog.dom.TagName("TR");
- goog.dom.TagName.TRACK = new goog.dom.TagName("TRACK");
- goog.dom.TagName.TT = new goog.dom.TagName("TT");
- goog.dom.TagName.U = new goog.dom.TagName("U");
- goog.dom.TagName.UL = new goog.dom.TagName("UL");
- goog.dom.TagName.VAR = new goog.dom.TagName("VAR");
- goog.dom.TagName.VIDEO = new goog.dom.TagName("VIDEO");
- goog.dom.TagName.WBR = new goog.dom.TagName("WBR");
- goog.dom.tags = {};
- goog.dom.tags.VOID_TAGS_ = {
- area: !0,
- base: !0,
- br: !0,
- col: !0,
- command: !0,
- embed: !0,
- hr: !0,
- img: !0,
- input: !0,
- keygen: !0,
- link: !0,
- meta: !0,
- param: !0,
- source: !0,
- track: !0,
- wbr: !0
- };
- goog.dom.tags.isVoidTag = function (a) {
- return !0 === goog.dom.tags.VOID_TAGS_[a];
- };
- goog.html = {};
- goog.html.trustedtypes = {};
- goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#html") : null;
- goog.string = {};
- goog.string.TypedString = function () {};
- goog.string.Const = function (a, b) {
- this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = a === goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
- this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ = goog.string.Const.TYPE_MARKER_;
- };
- goog.string.Const.prototype.implementsGoogStringTypedString = !0;
- goog.string.Const.prototype.getTypedStringValue = function () {
- return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
- };
- goog.DEBUG && (goog.string.Const.prototype.toString = function () {
- return "Const{" + this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ + "}";
- });
- goog.string.Const.unwrap = function (a) {
- if (a instanceof goog.string.Const && a.constructor === goog.string.Const && a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ === goog.string.Const.TYPE_MARKER_) return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
- goog.asserts.fail("expected object of type Const, got '" + a + "'");
- return "type_error:Const";
- };
- goog.string.Const.from = function (a) {
- return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_, a);
- };
- goog.string.Const.TYPE_MARKER_ = {};
- goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ = {};
- goog.string.Const.EMPTY = goog.string.Const.from("");
- goog.html.SafeScript = function () {
- this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = "";
- this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- };
- goog.html.SafeScript.prototype.implementsGoogStringTypedString = !0;
- goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.SafeScript.fromConstant = function (a) {
- a = goog.string.Const.unwrap(a);
- return 0 === a.length ? goog.html.SafeScript.EMPTY : goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeScript.fromConstantAndArgs = function (a, b) {
- for (var c = [], d = 1; d < arguments.length; d++) {
- c.push(goog.html.SafeScript.stringify_(arguments[d]));
- }
- return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("(" + goog.string.Const.unwrap(a) + ")(" + c.join(", ") + ");");
- };
- goog.html.SafeScript.fromJson = function (a) {
- return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a));
- };
- goog.html.SafeScript.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();
- };
- goog.DEBUG && (goog.html.SafeScript.prototype.toString = function () {
- return "SafeScript{" + this.privateDoNotAccessOrElseSafeScriptWrappedValue_ + "}";
- });
- goog.html.SafeScript.unwrap = function (a) {
- return goog.html.SafeScript.unwrapTrustedScript(a).toString();
- };
- goog.html.SafeScript.unwrapTrustedScript = function (a) {
- if (a instanceof goog.html.SafeScript && a.constructor === goog.html.SafeScript && a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;
- goog.asserts.fail("expected object of type SafeScript, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:SafeScript";
- };
- goog.html.SafeScript.stringify_ = function (a) {
- return JSON.stringify(a).replace(/</g, "\\x3c");
- };
- goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse = function (a) {
- return new goog.html.SafeScript().initSecurityPrivateDoNotAccessOrElse_(a);
- };
- goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
- this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a) : a;
- return this;
- };
- goog.html.SafeScript.EMPTY = goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");
- goog.fs = {};
- goog.fs.url = {};
- goog.fs.url.createObjectUrl = function (a) {
- return goog.fs.url.getUrlObject_().createObjectURL(a);
- };
- goog.fs.url.revokeObjectUrl = function (a) {
- goog.fs.url.getUrlObject_().revokeObjectURL(a);
- };
- goog.fs.url.UrlObject_ = function () {};
- goog.fs.url.UrlObject_.prototype.createObjectURL = function (a) {};
- goog.fs.url.UrlObject_.prototype.revokeObjectURL = function (a) {};
- goog.fs.url.getUrlObject_ = function () {
- var a = goog.fs.url.findUrlObject_();
- if (null != a) return a;
- throw Error("This browser doesn't seem to support blob URLs");
- };
- goog.fs.url.findUrlObject_ = function () {
- return void 0 !== goog.global.URL && void 0 !== goog.global.URL.createObjectURL ? goog.global.URL : void 0 !== goog.global.webkitURL && void 0 !== goog.global.webkitURL.createObjectURL ? goog.global.webkitURL : void 0 !== goog.global.createObjectURL ? goog.global : null;
- };
- goog.fs.url.browserSupportsObjectUrls = function () {
- return null != goog.fs.url.findUrlObject_();
- };
- goog.fs.blob = {};
- goog.fs.blob.getBlob = function (a) {
- var b = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;
- if (void 0 !== b) {
- b = new b();
- for (var c = 0; c < arguments.length; c++) {
- b.append(arguments[c]);
- }
- return b.getBlob();
- }
- return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments));
- };
- goog.fs.blob.getBlobWithProperties = function (a, b, c) {
- var d = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;
- if (void 0 !== d) {
- d = new d();
- for (var e = 0; e < a.length; e++) {
- d.append(a[e], c);
- }
- return d.getBlob(b);
- }
- if (void 0 !== goog.global.Blob) return d = {}, b && (d.type = b), c && (d.endings = c), new Blob(a, d);
- throw Error("This browser doesn't seem to support creating Blobs");
- };
- goog.i18n = {};
- goog.i18n.bidi = {};
- goog.i18n.bidi.FORCE_RTL = !1;
- goog.i18n.bidi.IS_RTL = goog.i18n.bidi.FORCE_RTL || ("ar" == goog.LOCALE.substring(0, 2).toLowerCase() || "fa" == goog.LOCALE.substring(0, 2).toLowerCase() || "he" == goog.LOCALE.substring(0, 2).toLowerCase() || "iw" == goog.LOCALE.substring(0, 2).toLowerCase() || "ps" == goog.LOCALE.substring(0, 2).toLowerCase() || "sd" == goog.LOCALE.substring(0, 2).toLowerCase() || "ug" == goog.LOCALE.substring(0, 2).toLowerCase() || "ur" == goog.LOCALE.substring(0, 2).toLowerCase() || "yi" == goog.LOCALE.substring(0, 2).toLowerCase()) && (2 == goog.LOCALE.length || "-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) || 3 <= goog.LOCALE.length && "ckb" == goog.LOCALE.substring(0, 3).toLowerCase() && (3 == goog.LOCALE.length || "-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) || 7 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) && ("adlm" == goog.LOCALE.substring(3, 7).toLowerCase() || "arab" == goog.LOCALE.substring(3, 7).toLowerCase() || "hebr" == goog.LOCALE.substring(3, 7).toLowerCase() || "nkoo" == goog.LOCALE.substring(3, 7).toLowerCase() || "rohg" == goog.LOCALE.substring(3, 7).toLowerCase() || "thaa" == goog.LOCALE.substring(3, 7).toLowerCase()) || 8 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) && ("adlm" == goog.LOCALE.substring(4, 8).toLowerCase() || "arab" == goog.LOCALE.substring(4, 8).toLowerCase() || "hebr" == goog.LOCALE.substring(4, 8).toLowerCase() || "nkoo" == goog.LOCALE.substring(4, 8).toLowerCase() || "rohg" == goog.LOCALE.substring(4, 8).toLowerCase() || "thaa" == goog.LOCALE.substring(4, 8).toLowerCase());
- goog.i18n.bidi.Format = {
- LRE: "\u202A",
- RLE: "\u202B",
- PDF: "\u202C",
- LRM: "\u200E",
- RLM: "\u200F"
- };
- goog.i18n.bidi.Dir = {
- LTR: 1,
- RTL: -1,
- NEUTRAL: 0
- };
- goog.i18n.bidi.RIGHT = "right";
- goog.i18n.bidi.LEFT = "left";
- goog.i18n.bidi.I18N_RIGHT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.LEFT : goog.i18n.bidi.RIGHT;
- goog.i18n.bidi.I18N_LEFT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT;
- goog.i18n.bidi.toDir = function (a, b) {
- return "number" == typeof a ? 0 < a ? goog.i18n.bidi.Dir.LTR : 0 > a ? goog.i18n.bidi.Dir.RTL : b ? null : goog.i18n.bidi.Dir.NEUTRAL : null == a ? null : a ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
- };
- goog.i18n.bidi.ltrChars_ = "A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0900-\u1FFF\u200E\u2C00-\uD801\uD804-\uD839\uD83C-\uDBFF\uF900-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF";
- goog.i18n.bidi.rtlChars_ = "\u0591-\u06EF\u06FA-\u08FF\u200F\uD802-\uD803\uD83A-\uD83B\uFB1D-\uFDFF\uFE70-\uFEFC";
- goog.i18n.bidi.htmlSkipReg_ = /<[^>]*>|&[^;]+;/g;
- goog.i18n.bidi.stripHtmlIfNeeded_ = function (a, b) {
- return b ? a.replace(goog.i18n.bidi.htmlSkipReg_, "") : a;
- };
- goog.i18n.bidi.rtlCharReg_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "]");
- goog.i18n.bidi.ltrCharReg_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "]");
- goog.i18n.bidi.hasAnyRtl = function (a, b) {
- return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.hasRtlChar = goog.i18n.bidi.hasAnyRtl;
- goog.i18n.bidi.hasAnyLtr = function (a, b) {
- return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.ltrRe_ = new RegExp("^[" + goog.i18n.bidi.ltrChars_ + "]");
- goog.i18n.bidi.rtlRe_ = new RegExp("^[" + goog.i18n.bidi.rtlChars_ + "]");
- goog.i18n.bidi.isRtlChar = function (a) {
- return goog.i18n.bidi.rtlRe_.test(a);
- };
- goog.i18n.bidi.isLtrChar = function (a) {
- return goog.i18n.bidi.ltrRe_.test(a);
- };
- goog.i18n.bidi.isNeutralChar = function (a) {
- return !goog.i18n.bidi.isLtrChar(a) && !goog.i18n.bidi.isRtlChar(a);
- };
- goog.i18n.bidi.ltrDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.rtlChars_ + "]*[" + goog.i18n.bidi.ltrChars_ + "]");
- goog.i18n.bidi.rtlDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.ltrChars_ + "]*[" + goog.i18n.bidi.rtlChars_ + "]");
- goog.i18n.bidi.startsWithRtl = function (a, b) {
- return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.isRtlText = goog.i18n.bidi.startsWithRtl;
- goog.i18n.bidi.startsWithLtr = function (a, b) {
- return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.isLtrText = goog.i18n.bidi.startsWithLtr;
- goog.i18n.bidi.isRequiredLtrRe_ = /^http:\/\/.*/;
- goog.i18n.bidi.isNeutralText = function (a, b) {
- a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b);
- return goog.i18n.bidi.isRequiredLtrRe_.test(a) || !goog.i18n.bidi.hasAnyLtr(a) && !goog.i18n.bidi.hasAnyRtl(a);
- };
- goog.i18n.bidi.ltrExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "][^" + goog.i18n.bidi.rtlChars_ + "]*$");
- goog.i18n.bidi.rtlExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "][^" + goog.i18n.bidi.ltrChars_ + "]*$");
- goog.i18n.bidi.endsWithLtr = function (a, b) {
- return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.isLtrExitText = goog.i18n.bidi.endsWithLtr;
- goog.i18n.bidi.endsWithRtl = function (a, b) {
- return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
- };
- goog.i18n.bidi.isRtlExitText = goog.i18n.bidi.endsWithRtl;
- goog.i18n.bidi.rtlLocalesRe_ = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
- goog.i18n.bidi.isRtlLanguage = function (a) {
- return goog.i18n.bidi.rtlLocalesRe_.test(a);
- };
- goog.i18n.bidi.bracketGuardTextRe_ = /(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
- goog.i18n.bidi.guardBracketInText = function (a, b) {
- b = (void 0 === b ? goog.i18n.bidi.hasAnyRtl(a) : b) ? goog.i18n.bidi.Format.RLM : goog.i18n.bidi.Format.LRM;
- return a.replace(goog.i18n.bidi.bracketGuardTextRe_, b + "$&" + b);
- };
- goog.i18n.bidi.enforceRtlInHtml = function (a) {
- return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=rtl") : "\n<span dir=rtl>" + a + "</span>";
- };
- goog.i18n.bidi.enforceRtlInText = function (a) {
- return goog.i18n.bidi.Format.RLE + a + goog.i18n.bidi.Format.PDF;
- };
- goog.i18n.bidi.enforceLtrInHtml = function (a) {
- return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=ltr") : "\n<span dir=ltr>" + a + "</span>";
- };
- goog.i18n.bidi.enforceLtrInText = function (a) {
- return goog.i18n.bidi.Format.LRE + a + goog.i18n.bidi.Format.PDF;
- };
- goog.i18n.bidi.dimensionsRe_ = /:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;
- goog.i18n.bidi.leftRe_ = /left/gi;
- goog.i18n.bidi.rightRe_ = /right/gi;
- goog.i18n.bidi.tempRe_ = /%%%%/g;
- goog.i18n.bidi.mirrorCSS = function (a) {
- return a.replace(goog.i18n.bidi.dimensionsRe_, ":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_, "%%%%").replace(goog.i18n.bidi.rightRe_, goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_, goog.i18n.bidi.RIGHT);
- };
- goog.i18n.bidi.doubleQuoteSubstituteRe_ = /([\u0591-\u05f2])"/g;
- goog.i18n.bidi.singleQuoteSubstituteRe_ = /([\u0591-\u05f2])'/g;
- goog.i18n.bidi.normalizeHebrewQuote = function (a) {
- return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_, "$1\u05F4").replace(goog.i18n.bidi.singleQuoteSubstituteRe_, "$1\u05F3");
- };
- goog.i18n.bidi.wordSeparatorRe_ = /\s+/;
- goog.i18n.bidi.hasNumeralsRe_ = /[\d\u06f0-\u06f9]/;
- goog.i18n.bidi.rtlDetectionThreshold_ = .4;
- goog.i18n.bidi.estimateDirection = function (a, b) {
- var c = 0,
- d = 0,
- e = !1;
- a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b).split(goog.i18n.bidi.wordSeparatorRe_);
- for (b = 0; b < a.length; b++) {
- var f = a[b];
- goog.i18n.bidi.startsWithRtl(f) ? (c++, d++) : goog.i18n.bidi.isRequiredLtrRe_.test(f) ? e = !0 : goog.i18n.bidi.hasAnyLtr(f) ? d++ : goog.i18n.bidi.hasNumeralsRe_.test(f) && (e = !0);
- }
- return 0 == d ? e ? goog.i18n.bidi.Dir.LTR : goog.i18n.bidi.Dir.NEUTRAL : c / d > goog.i18n.bidi.rtlDetectionThreshold_ ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
- };
- goog.i18n.bidi.detectRtlDirectionality = function (a, b) {
- return goog.i18n.bidi.estimateDirection(a, b) == goog.i18n.bidi.Dir.RTL;
- };
- goog.i18n.bidi.setElementDirAndAlign = function (a, b) {
- a && (b = goog.i18n.bidi.toDir(b)) && (a.style.textAlign = b == goog.i18n.bidi.Dir.RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT, a.dir = b == goog.i18n.bidi.Dir.RTL ? "rtl" : "ltr");
- };
- goog.i18n.bidi.setElementDirByTextDirectionality = function (a, b) {
- switch (goog.i18n.bidi.estimateDirection(b)) {
- case goog.i18n.bidi.Dir.LTR:
- a.dir = "ltr";
- break;
- case goog.i18n.bidi.Dir.RTL:
- a.dir = "rtl";
- break;
- default:
- a.removeAttribute("dir");
- }
- };
- goog.i18n.bidi.DirectionalString = function () {};
- goog.html.TrustedResourceUrl = function (a, b) {
- this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = a === goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
- this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- };
- goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString = !0;
- goog.html.TrustedResourceUrl.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString();
- };
- goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
- goog.html.TrustedResourceUrl.prototype.getDirection = function () {
- return goog.i18n.bidi.Dir.LTR;
- };
- goog.html.TrustedResourceUrl.prototype.cloneWithParams = function (a, b) {
- var c = goog.html.TrustedResourceUrl.unwrap(this);
- c = goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);
- var d = c[3] || "";
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1] + goog.html.TrustedResourceUrl.stringifyParams_("?", c[2] || "", a) + goog.html.TrustedResourceUrl.stringifyParams_("#", d, b));
- };
- goog.DEBUG && (goog.html.TrustedResourceUrl.prototype.toString = function () {
- return "TrustedResourceUrl{" + this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ + "}";
- });
- goog.html.TrustedResourceUrl.unwrap = function (a) {
- return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString();
- };
- goog.html.TrustedResourceUrl.unwrapTrustedScriptURL = function (a) {
- if (a instanceof goog.html.TrustedResourceUrl && a.constructor === goog.html.TrustedResourceUrl && a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;
- goog.asserts.fail("expected object of type TrustedResourceUrl, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:TrustedResourceUrl";
- };
- goog.html.TrustedResourceUrl.format = function (a, b) {
- var c = goog.string.Const.unwrap(a);
- if (!goog.html.TrustedResourceUrl.BASE_URL_.test(c)) throw Error("Invalid TrustedResourceUrl format: " + c);
- a = c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_, function (a, e) {
- if (!Object.prototype.hasOwnProperty.call(b, e)) throw Error('Found marker, "' + e + '", in format string, "' + c + '", but no valid label mapping found in args: ' + JSON.stringify(b));
- a = b[e];
- return a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : encodeURIComponent(String(a));
- });
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.TrustedResourceUrl.FORMAT_MARKER_ = /%{(\w+)}/g;
- goog.html.TrustedResourceUrl.BASE_URL_ = /^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;
- goog.html.TrustedResourceUrl.URL_PARAM_PARSER_ = /^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
- goog.html.TrustedResourceUrl.formatWithParams = function (a, b, c, d) {
- return goog.html.TrustedResourceUrl.format(a, b).cloneWithParams(c, d);
- };
- goog.html.TrustedResourceUrl.fromConstant = function (a) {
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
- };
- goog.html.TrustedResourceUrl.fromConstants = function (a) {
- for (var b = "", c = 0; c < a.length; c++) {
- b += goog.string.Const.unwrap(a[c]);
- }
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.TrustedResourceUrl.fromSafeScript = function (a) {
- a = goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(a)], "text/javascript");
- a = goog.fs.url.createObjectUrl(a);
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse = function (a) {
- a = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a) : a;
- return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);
- };
- goog.html.TrustedResourceUrl.stringifyParams_ = function (a, b, c) {
- if (null == c) return b;
- if ("string" === typeof c) return c ? a + encodeURIComponent(c) : "";
- for (var d in c) {
- var e = c[d];
- e = Array.isArray(e) ? e : [e];
- for (var f = 0; f < e.length; f++) {
- var g = e[f];
- null != g && (b || (b = a), b += (b.length > a.length ? "&" : "") + encodeURIComponent(d) + "=" + encodeURIComponent(String(g)));
- }
- }
- return b;
- };
- goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
- goog.string.internal = {};
- goog.string.internal.startsWith = function (a, b) {
- return 0 == a.lastIndexOf(b, 0);
- };
- goog.string.internal.endsWith = function (a, b) {
- var c = a.length - b.length;
- return 0 <= c && a.indexOf(b, c) == c;
- };
- goog.string.internal.caseInsensitiveStartsWith = function (a, b) {
- return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(0, b.length));
- };
- goog.string.internal.caseInsensitiveEndsWith = function (a, b) {
- return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(a.length - b.length, b.length));
- };
- goog.string.internal.caseInsensitiveEquals = function (a, b) {
- return a.toLowerCase() == b.toLowerCase();
- };
- goog.string.internal.isEmptyOrWhitespace = function (a) {
- return /^[\s\xa0]*$/.test(a);
- };
- goog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function (a) {
- return a.trim();
- } : function (a) {
- return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1];
- };
- goog.string.internal.caseInsensitiveCompare = function (a, b) {
- a = String(a).toLowerCase();
- b = String(b).toLowerCase();
- return a < b ? -1 : a == b ? 0 : 1;
- };
- goog.string.internal.newLineToBr = function (a, b) {
- return a.replace(/(\r\n|\r|\n)/g, b ? "<br />" : "<br>");
- };
- goog.string.internal.htmlEscape = function (a, b) {
- if (b) a = a.replace(goog.string.internal.AMP_RE_, "&").replace(goog.string.internal.LT_RE_, "<").replace(goog.string.internal.GT_RE_, ">").replace(goog.string.internal.QUOT_RE_, """).replace(goog.string.internal.SINGLE_QUOTE_RE_, "'").replace(goog.string.internal.NULL_RE_, "�");else {
- if (!goog.string.internal.ALL_RE_.test(a)) return a;
- -1 != a.indexOf("&") && (a = a.replace(goog.string.internal.AMP_RE_, "&"));
- -1 != a.indexOf("<") && (a = a.replace(goog.string.internal.LT_RE_, "<"));
- -1 != a.indexOf(">") && (a = a.replace(goog.string.internal.GT_RE_, ">"));
- -1 != a.indexOf('"') && (a = a.replace(goog.string.internal.QUOT_RE_, """));
- -1 != a.indexOf("'") && (a = a.replace(goog.string.internal.SINGLE_QUOTE_RE_, "'"));
- -1 != a.indexOf("\x00") && (a = a.replace(goog.string.internal.NULL_RE_, "�"));
- }
- return a;
- };
- goog.string.internal.AMP_RE_ = /&/g;
- goog.string.internal.LT_RE_ = /</g;
- goog.string.internal.GT_RE_ = />/g;
- goog.string.internal.QUOT_RE_ = /"/g;
- goog.string.internal.SINGLE_QUOTE_RE_ = /'/g;
- goog.string.internal.NULL_RE_ = /\x00/g;
- goog.string.internal.ALL_RE_ = /[\x00&<>"']/;
- goog.string.internal.whitespaceEscape = function (a, b) {
- return goog.string.internal.newLineToBr(a.replace(/ /g, "  "), b);
- };
- goog.string.internal.contains = function (a, b) {
- return -1 != a.indexOf(b);
- };
- goog.string.internal.caseInsensitiveContains = function (a, b) {
- return goog.string.internal.contains(a.toLowerCase(), b.toLowerCase());
- };
- goog.string.internal.compareVersions = function (a, b) {
- var c = 0;
- a = goog.string.internal.trim(String(a)).split(".");
- b = goog.string.internal.trim(String(b)).split(".");
- for (var d = Math.max(a.length, b.length), e = 0; 0 == c && e < d; e++) {
- var f = a[e] || "",
- g = b[e] || "";
- do {
- f = /(\d*)(\D*)(.*)/.exec(f) || ["", "", "", ""];
- g = /(\d*)(\D*)(.*)/.exec(g) || ["", "", "", ""];
- if (0 == f[0].length && 0 == g[0].length) break;
- c = 0 == f[1].length ? 0 : parseInt(f[1], 10);
- var h = 0 == g[1].length ? 0 : parseInt(g[1], 10);
- c = goog.string.internal.compareElements_(c, h) || goog.string.internal.compareElements_(0 == f[2].length, 0 == g[2].length) || goog.string.internal.compareElements_(f[2], g[2]);
- f = f[3];
- g = g[3];
- } while (0 == c);
- }
- return c;
- };
- goog.string.internal.compareElements_ = function (a, b) {
- return a < b ? -1 : a > b ? 1 : 0;
- };
- goog.html.SafeUrl = function (a, b) {
- this.privateDoNotAccessOrElseSafeUrlWrappedValue_ = a === goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
- this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- };
- goog.html.SafeUrl.INNOCUOUS_STRING = "about:invalid#zClosurez";
- goog.html.SafeUrl.prototype.implementsGoogStringTypedString = !0;
- goog.html.SafeUrl.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();
- };
- goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
- goog.html.SafeUrl.prototype.getDirection = function () {
- return goog.i18n.bidi.Dir.LTR;
- };
- goog.DEBUG && (goog.html.SafeUrl.prototype.toString = function () {
- return "SafeUrl{" + this.privateDoNotAccessOrElseSafeUrlWrappedValue_ + "}";
- });
- goog.html.SafeUrl.unwrap = function (a) {
- if (a instanceof goog.html.SafeUrl && a.constructor === goog.html.SafeUrl && a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;
- goog.asserts.fail("expected object of type SafeUrl, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:SafeUrl";
- };
- goog.html.SafeUrl.fromConstant = function (a) {
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
- };
- goog.html.SAFE_MIME_TYPE_PATTERN_ = /^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i;
- goog.html.SafeUrl.isSafeMimeType = function (a) {
- return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a);
- };
- goog.html.SafeUrl.fromBlob = function (a) {
- a = goog.html.SafeUrl.isSafeMimeType(a.type) ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.fromMediaSource = function (a) {
- goog.asserts.assert("MediaSource" in goog.global, "No support for MediaSource");
- a = a instanceof MediaSource ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.DATA_URL_PATTERN_ = /^data:(.*);base64,[a-z0-9+\/]+=*$/i;
- goog.html.SafeUrl.fromDataUrl = function (a) {
- a = a.replace(/(%0A|%0D)/g, "");
- var b = a.match(goog.html.DATA_URL_PATTERN_);
- b = b && goog.html.SafeUrl.isSafeMimeType(b[1]);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b ? a : goog.html.SafeUrl.INNOCUOUS_STRING);
- };
- goog.html.SafeUrl.fromTelUrl = function (a) {
- goog.string.internal.caseInsensitiveStartsWith(a, "tel:") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SIP_URL_PATTERN_ = /^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;
- goog.html.SafeUrl.fromSipUrl = function (a) {
- goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a)) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.fromFacebookMessengerUrl = function (a) {
- goog.string.internal.caseInsensitiveStartsWith(a, "fb-messenger://share") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.fromWhatsAppUrl = function (a) {
- goog.string.internal.caseInsensitiveStartsWith(a, "whatsapp://send") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.fromSmsUrl = function (a) {
- goog.string.internal.caseInsensitiveStartsWith(a, "sms:") && goog.html.SafeUrl.isSmsUrlBodyValid_(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.isSmsUrlBodyValid_ = function (a) {
- var b = a.indexOf("#");
- 0 < b && (a = a.substring(0, b));
- b = a.match(/[?&]body=/gi);
- if (!b) return !0;
- if (1 < b.length) return !1;
- a = a.match(/[?&]body=([^&]*)/)[1];
- if (!a) return !0;
- try {
- decodeURIComponent(a);
- } catch (c) {
- return !1;
- }
- return /^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(a);
- };
- goog.html.SafeUrl.fromSshUrl = function (a) {
- goog.string.internal.caseInsensitiveStartsWith(a, "ssh://") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.sanitizeChromeExtensionUrl = function (a, b) {
- return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//, a, b);
- };
- goog.html.SafeUrl.sanitizeFirefoxExtensionUrl = function (a, b) {
- return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//, a, b);
- };
- goog.html.SafeUrl.sanitizeEdgeExtensionUrl = function (a, b) {
- return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//, a, b);
- };
- goog.html.SafeUrl.sanitizeExtensionUrl_ = function (a, b, c) {
- (a = a.exec(b)) ? (a = a[1], -1 == (c instanceof goog.string.Const ? [goog.string.Const.unwrap(c)] : c.map(function (a) {
- return goog.string.Const.unwrap(a);
- })).indexOf(a) && (b = goog.html.SafeUrl.INNOCUOUS_STRING)) : b = goog.html.SafeUrl.INNOCUOUS_STRING;
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.SafeUrl.fromTrustedResourceUrl = function (a) {
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a));
- };
- goog.html.SAFE_URL_PATTERN_ = /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;
- goog.html.SafeUrl.SAFE_URL_PATTERN = goog.html.SAFE_URL_PATTERN_;
- goog.html.SafeUrl.sanitize = function (a) {
- if (a instanceof goog.html.SafeUrl) return a;
- a = "object" == _typeof(a) && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
- goog.html.SAFE_URL_PATTERN_.test(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.sanitizeAssertUnchanged = function (a, b) {
- if (a instanceof goog.html.SafeUrl) return a;
- a = "object" == _typeof(a) && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
- if (b && /^data:/i.test(a) && (b = goog.html.SafeUrl.fromDataUrl(a), b.getTypedStringValue() == a)) return b;
- goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a), "%s does not match the safe URL pattern", a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse = function (a) {
- return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);
- };
- goog.html.SafeUrl.ABOUT_BLANK = goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");
- goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
- goog.html.SafeStyle = function () {
- this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = "";
- this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- };
- goog.html.SafeStyle.prototype.implementsGoogStringTypedString = !0;
- goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.SafeStyle.fromConstant = function (a) {
- a = goog.string.Const.unwrap(a);
- if (0 === a.length) return goog.html.SafeStyle.EMPTY;
- goog.asserts.assert(goog.string.internal.endsWith(a, ";"), "Last character of style string is not ';': " + a);
- goog.asserts.assert(goog.string.internal.contains(a, ":"), "Style string must contain at least one ':', to specify a \"name: value\" pair: " + a);
- return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeStyle.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseSafeStyleWrappedValue_;
- };
- goog.DEBUG && (goog.html.SafeStyle.prototype.toString = function () {
- return "SafeStyle{" + this.privateDoNotAccessOrElseSafeStyleWrappedValue_ + "}";
- });
- goog.html.SafeStyle.unwrap = function (a) {
- if (a instanceof goog.html.SafeStyle && a.constructor === goog.html.SafeStyle && a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;
- goog.asserts.fail("expected object of type SafeStyle, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:SafeStyle";
- };
- goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse = function (a) {
- return new goog.html.SafeStyle().initSecurityPrivateDoNotAccessOrElse_(a);
- };
- goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
- this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = a;
- return this;
- };
- goog.html.SafeStyle.EMPTY = goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");
- goog.html.SafeStyle.INNOCUOUS_STRING = "zClosurez";
- goog.html.SafeStyle.create = function (a) {
- var b = "",
- c;
- for (c in a) {
- if (!/^[-_a-zA-Z0-9]+$/.test(c)) throw Error("Name allows only [-_a-zA-Z0-9], got: " + c);
- var d = a[c];
- null != d && (d = Array.isArray(d) ? goog.array.map(d, goog.html.SafeStyle.sanitizePropertyValue_).join(" ") : goog.html.SafeStyle.sanitizePropertyValue_(d), b += c + ":" + d + ";");
- }
- return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
- };
- goog.html.SafeStyle.sanitizePropertyValue_ = function (a) {
- if (a instanceof goog.html.SafeUrl) return 'url("' + goog.html.SafeUrl.unwrap(a).replace(/</g, "%3c").replace(/[\\"]/g, "\\$&") + '")';
- a = a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : goog.html.SafeStyle.sanitizePropertyValueString_(String(a));
- if (/[{;}]/.test(a)) throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.", [a]);
- return a;
- };
- goog.html.SafeStyle.sanitizePropertyValueString_ = function (a) {
- var b = a.replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.URL_RE_, "url");
- if (goog.html.SafeStyle.VALUE_RE_.test(b)) {
- if (goog.html.SafeStyle.COMMENT_RE_.test(a)) return goog.asserts.fail("String value disallows comments, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
- if (!goog.html.SafeStyle.hasBalancedQuotes_(a)) return goog.asserts.fail("String value requires balanced quotes, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
- if (!goog.html.SafeStyle.hasBalancedSquareBrackets_(a)) return goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
- } else return goog.asserts.fail("String value allows only " + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + " and simple functions, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
- return goog.html.SafeStyle.sanitizeUrl_(a);
- };
- goog.html.SafeStyle.hasBalancedQuotes_ = function (a) {
- for (var b = !0, c = !0, d = 0; d < a.length; d++) {
- var e = a.charAt(d);
- "'" == e && c ? b = !b : '"' == e && b && (c = !c);
- }
- return b && c;
- };
- goog.html.SafeStyle.hasBalancedSquareBrackets_ = function (a) {
- for (var b = !0, c = /^[-_a-zA-Z0-9]$/, d = 0; d < a.length; d++) {
- var e = a.charAt(d);
- if ("]" == e) {
- if (b) return !1;
- b = !0;
- } else if ("[" == e) {
- if (!b) return !1;
- b = !1;
- } else if (!b && !c.test(e)) return !1;
- }
- return b;
- };
- goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ = "[-,.\"'%_!# a-zA-Z0-9\\[\\]]";
- goog.html.SafeStyle.VALUE_RE_ = new RegExp("^" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + "+$");
- goog.html.SafeStyle.URL_RE_ = /\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;
- goog.html.SafeStyle.ALLOWED_FUNCTIONS_ = "calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" ");
- goog.html.SafeStyle.FUNCTIONS_RE_ = new RegExp("\\b(" + goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|") + ")\\([-+*/0-9a-z.%\\[\\], ]+\\)", "g");
- goog.html.SafeStyle.COMMENT_RE_ = /\/\*/;
- goog.html.SafeStyle.sanitizeUrl_ = function (a) {
- return a.replace(goog.html.SafeStyle.URL_RE_, function (a, c, d, e) {
- var b = "";
- d = d.replace(/^(['"])(.*)\1$/, function (a, c, d) {
- b = c;
- return d;
- });
- a = goog.html.SafeUrl.sanitize(d).getTypedStringValue();
- return c + b + a + b + e;
- });
- };
- goog.html.SafeStyle.concat = function (a) {
- var b = "",
- c = function c(a) {
- Array.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyle.unwrap(a);
- };
- goog.array.forEach(arguments, c);
- return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
- };
- goog.html.SafeStyleSheet = function () {
- this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = "";
- this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- };
- goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString = !0;
- goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.SafeStyleSheet.createRule = function (a, b) {
- if (goog.string.internal.contains(a, "<")) throw Error("Selector does not allow '<', got: " + a);
- var c = a.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g, "");
- if (!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(c)) throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: " + a);
- if (!goog.html.SafeStyleSheet.hasBalancedBrackets_(c)) throw Error("() and [] in selector must be balanced, got: " + a);
- b instanceof goog.html.SafeStyle || (b = goog.html.SafeStyle.create(b));
- a = a + "{" + goog.html.SafeStyle.unwrap(b).replace(/</g, "\\3C ") + "}";
- return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeStyleSheet.hasBalancedBrackets_ = function (a) {
- for (var b = {
- "(": ")",
- "[": "]"
- }, c = [], d = 0; d < a.length; d++) {
- var e = a[d];
- if (b[e]) c.push(b[e]);else if (goog.object.contains(b, e) && c.pop() != e) return !1;
- }
- return 0 == c.length;
- };
- goog.html.SafeStyleSheet.concat = function (a) {
- var b = "",
- c = function c(a) {
- Array.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyleSheet.unwrap(a);
- };
- goog.array.forEach(arguments, c);
- return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.SafeStyleSheet.fromConstant = function (a) {
- a = goog.string.Const.unwrap(a);
- if (0 === a.length) return goog.html.SafeStyleSheet.EMPTY;
- goog.asserts.assert(!goog.string.internal.contains(a, "<"), "Forbidden '<' character in style sheet string: " + a);
- return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);
- };
- goog.html.SafeStyleSheet.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
- };
- goog.DEBUG && (goog.html.SafeStyleSheet.prototype.toString = function () {
- return "SafeStyleSheet{" + this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ + "}";
- });
- goog.html.SafeStyleSheet.unwrap = function (a) {
- if (a instanceof goog.html.SafeStyleSheet && a.constructor === goog.html.SafeStyleSheet && a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
- goog.asserts.fail("expected object of type SafeStyleSheet, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:SafeStyleSheet";
- };
- goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse = function (a) {
- return new goog.html.SafeStyleSheet().initSecurityPrivateDoNotAccessOrElse_(a);
- };
- goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
- this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = a;
- return this;
- };
- goog.html.SafeStyleSheet.EMPTY = goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");
- goog.labs = {};
- goog.labs.userAgent = {};
- goog.labs.userAgent.util = {};
- goog.labs.userAgent.util.getNativeUserAgentString_ = function () {
- var a = goog.labs.userAgent.util.getNavigator_();
- return a && (a = a.userAgent) ? a : "";
- };
- goog.labs.userAgent.util.getNavigator_ = function () {
- return goog.global.navigator;
- };
- goog.labs.userAgent.util.userAgent_ = goog.labs.userAgent.util.getNativeUserAgentString_();
- goog.labs.userAgent.util.setUserAgent = function (a) {
- goog.labs.userAgent.util.userAgent_ = a || goog.labs.userAgent.util.getNativeUserAgentString_();
- };
- goog.labs.userAgent.util.getUserAgent = function () {
- return goog.labs.userAgent.util.userAgent_;
- };
- goog.labs.userAgent.util.matchUserAgent = function (a) {
- var b = goog.labs.userAgent.util.getUserAgent();
- return goog.string.internal.contains(b, a);
- };
- goog.labs.userAgent.util.matchUserAgentIgnoreCase = function (a) {
- var b = goog.labs.userAgent.util.getUserAgent();
- return goog.string.internal.caseInsensitiveContains(b, a);
- };
- goog.labs.userAgent.util.extractVersionTuples = function (a) {
- for (var b = /(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g, c = [], d; d = b.exec(a);) {
- c.push([d[1], d[2], d[3] || void 0]);
- }
- return c;
- };
- goog.labs.userAgent.browser = {};
- goog.labs.userAgent.browser.matchOpera_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Opera");
- };
- goog.labs.userAgent.browser.matchIE_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
- };
- goog.labs.userAgent.browser.matchEdgeHtml_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Edge");
- };
- goog.labs.userAgent.browser.matchEdgeChromium_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Edg/");
- };
- goog.labs.userAgent.browser.matchOperaChromium_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("OPR");
- };
- goog.labs.userAgent.browser.matchFirefox_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Firefox") || goog.labs.userAgent.util.matchUserAgent("FxiOS");
- };
- goog.labs.userAgent.browser.matchSafari_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Safari") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent("Android"));
- };
- goog.labs.userAgent.browser.matchCoast_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Coast");
- };
- goog.labs.userAgent.browser.matchIosWebview_ = function () {
- return (goog.labs.userAgent.util.matchUserAgent("iPad") || goog.labs.userAgent.util.matchUserAgent("iPhone")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent("AppleWebKit");
- };
- goog.labs.userAgent.browser.matchChrome_ = function () {
- return (goog.labs.userAgent.util.matchUserAgent("Chrome") || goog.labs.userAgent.util.matchUserAgent("CriOS")) && !goog.labs.userAgent.browser.matchEdgeHtml_();
- };
- goog.labs.userAgent.browser.matchAndroidBrowser_ = function () {
- return goog.labs.userAgent.util.matchUserAgent("Android") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());
- };
- goog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;
- goog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;
- goog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;
- goog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;
- goog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;
- goog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;
- goog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;
- goog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;
- goog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;
- goog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;
- goog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;
- goog.labs.userAgent.browser.isSilk = function () {
- return goog.labs.userAgent.util.matchUserAgent("Silk");
- };
- goog.labs.userAgent.browser.getVersion = function () {
- function a(a) {
- a = goog.array.find(a, d);
- return c[a] || "";
- }
- var b = goog.labs.userAgent.util.getUserAgent();
- if (goog.labs.userAgent.browser.isIE()) return goog.labs.userAgent.browser.getIEVersion_(b);
- b = goog.labs.userAgent.util.extractVersionTuples(b);
- var c = {};
- goog.array.forEach(b, function (a) {
- c[a[0]] = a[1];
- });
- var d = goog.partial(goog.object.containsKey, c);
- return goog.labs.userAgent.browser.isOpera() ? a(["Version", "Opera"]) : goog.labs.userAgent.browser.isEdge() ? a(["Edge"]) : goog.labs.userAgent.browser.isEdgeChromium() ? a(["Edg"]) : goog.labs.userAgent.browser.isChrome() ? a(["Chrome", "CriOS", "HeadlessChrome"]) : (b = b[2]) && b[1] || "";
- };
- goog.labs.userAgent.browser.isVersionOrHigher = function (a) {
- return 0 <= goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), a);
- };
- goog.labs.userAgent.browser.getIEVersion_ = function (a) {
- var b = /rv: *([\d\.]*)/.exec(a);
- if (b && b[1]) return b[1];
- b = "";
- var c = /MSIE +([\d\.]+)/.exec(a);
- if (c && c[1]) if (a = /Trident\/(\d.\d)/.exec(a), "7.0" == c[1]) {
- if (a && a[1]) switch (a[1]) {
- case "4.0":
- b = "8.0";
- break;
- case "5.0":
- b = "9.0";
- break;
- case "6.0":
- b = "10.0";
- break;
- case "7.0":
- b = "11.0";
- } else b = "7.0";
- } else b = c[1];
- return b;
- };
- goog.html.SafeHtml = function () {
- this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = "";
- this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
- this.dir_ = null;
- };
- goog.html.SafeHtml.ENABLE_ERROR_MESSAGES = goog.DEBUG;
- goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE = !0;
- goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString = !0;
- goog.html.SafeHtml.prototype.getDirection = function () {
- return this.dir_;
- };
- goog.html.SafeHtml.prototype.implementsGoogStringTypedString = !0;
- goog.html.SafeHtml.prototype.getTypedStringValue = function () {
- return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();
- };
- goog.DEBUG && (goog.html.SafeHtml.prototype.toString = function () {
- return "SafeHtml{" + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + "}";
- });
- goog.html.SafeHtml.unwrap = function (a) {
- return goog.html.SafeHtml.unwrapTrustedHTML(a).toString();
- };
- goog.html.SafeHtml.unwrapTrustedHTML = function (a) {
- if (a instanceof goog.html.SafeHtml && a.constructor === goog.html.SafeHtml && a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;
- goog.asserts.fail("expected object of type SafeHtml, got '" + a + "' of type " + goog.typeOf(a));
- return "type_error:SafeHtml";
- };
- goog.html.SafeHtml.htmlEscape = function (a) {
- if (a instanceof goog.html.SafeHtml) return a;
- var b = "object" == _typeof(a),
- c = null;
- b && a.implementsGoogI18nBidiDirectionalString && (c = a.getDirection());
- a = b && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a), c);
- };
- goog.html.SafeHtml.htmlEscapePreservingNewlines = function (a) {
- if (a instanceof goog.html.SafeHtml) return a;
- a = goog.html.SafeHtml.htmlEscape(a);
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)), a.getDirection());
- };
- goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces = function (a) {
- if (a instanceof goog.html.SafeHtml) return a;
- a = goog.html.SafeHtml.htmlEscape(a);
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)), a.getDirection());
- };
- goog.html.SafeHtml.from = goog.html.SafeHtml.htmlEscape;
- goog.html.SafeHtml.comment = function (a) {
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3c!--" + goog.string.internal.htmlEscape(a) + "--\x3e", null);
- };
- goog.html.SafeHtml.VALID_NAMES_IN_TAG_ = /^[a-zA-Z0-9-]+$/;
- goog.html.SafeHtml.URL_ATTRIBUTES_ = {
- action: !0,
- cite: !0,
- data: !0,
- formaction: !0,
- href: !0,
- manifest: !0,
- poster: !0,
- src: !0
- };
- goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_ = {
- APPLET: !0,
- BASE: !0,
- EMBED: !0,
- IFRAME: !0,
- LINK: !0,
- MATH: !0,
- META: !0,
- OBJECT: !0,
- SCRIPT: !0,
- STYLE: !0,
- SVG: !0,
- TEMPLATE: !0
- };
- goog.html.SafeHtml.create = function (a, b, c) {
- goog.html.SafeHtml.verifyTagName(String(a));
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a), b, c);
- };
- goog.html.SafeHtml.verifyTagName = function (a) {
- if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Invalid tag name <" + a + ">." : "");
- if (a.toUpperCase() in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Tag name <" + a + "> is not allowed for SafeHtml." : "");
- };
- goog.html.SafeHtml.createIframe = function (a, b, c, d) {
- a && goog.html.TrustedResourceUrl.unwrap(a);
- var e = {};
- e.src = a || null;
- e.srcdoc = b && goog.html.SafeHtml.unwrap(b);
- a = goog.html.SafeHtml.combineAttributes(e, {
- sandbox: ""
- }, c);
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
- };
- goog.html.SafeHtml.createSandboxIframe = function (a, b, c, d) {
- if (!goog.html.SafeHtml.canUseSandboxIframe()) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "The browser does not support sandboxed iframes." : "");
- var e = {};
- e.src = a ? goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)) : null;
- e.srcdoc = b || null;
- e.sandbox = "";
- a = goog.html.SafeHtml.combineAttributes(e, {}, c);
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
- };
- goog.html.SafeHtml.canUseSandboxIframe = function () {
- return goog.global.HTMLIFrameElement && "sandbox" in goog.global.HTMLIFrameElement.prototype;
- };
- goog.html.SafeHtml.createScriptSrc = function (a, b) {
- goog.html.TrustedResourceUrl.unwrap(a);
- a = goog.html.SafeHtml.combineAttributes({
- src: a
- }, {}, b);
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", a);
- };
- goog.html.SafeHtml.createScript = function (a, b) {
- for (var c in b) {
- var d = c.toLowerCase();
- if ("language" == d || "src" == d || "text" == d || "type" == d) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot set "' + d + '" attribute' : "");
- }
- c = "";
- a = goog.array.concat(a);
- for (d = 0; d < a.length; d++) {
- c += goog.html.SafeScript.unwrap(a[d]);
- }
- a = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", b, a);
- };
- goog.html.SafeHtml.createStyle = function (a, b) {
- b = goog.html.SafeHtml.combineAttributes({
- type: "text/css"
- }, {}, b);
- var c = "";
- a = goog.array.concat(a);
- for (var d = 0; d < a.length; d++) {
- c += goog.html.SafeStyleSheet.unwrap(a[d]);
- }
- a = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style", b, a);
- };
- goog.html.SafeHtml.createMetaRefresh = function (a, b) {
- a = goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));
- (goog.labs.userAgent.browser.isIE() || goog.labs.userAgent.browser.isEdge()) && goog.string.internal.contains(a, ";") && (a = "'" + a.replace(/'/g, "%27") + "'");
- return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta", {
- "http-equiv": "refresh",
- content: (b || 0) + "; url=" + a
- });
- };
- goog.html.SafeHtml.getAttrNameAndValue_ = function (a, b, c) {
- if (c instanceof goog.string.Const) c = goog.string.Const.unwrap(c);else if ("style" == b.toLowerCase()) {
- if (goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE) c = goog.html.SafeHtml.getStyleValue_(c);else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "style" not supported.' : "");
- } else {
- if (/^on/i.test(b)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" requires goog.string.Const value, "' + c + '" given.' : "");
- if (b.toLowerCase() in goog.html.SafeHtml.URL_ATTRIBUTES_) if (c instanceof goog.html.TrustedResourceUrl) c = goog.html.TrustedResourceUrl.unwrap(c);else if (c instanceof goog.html.SafeUrl) c = goog.html.SafeUrl.unwrap(c);else if ("string" === typeof c) c = goog.html.SafeUrl.sanitize(c).getTypedStringValue();else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" on tag "' + a + '" requires goog.html.SafeUrl, goog.string.Const, or string, value "' + c + '" given.' : "");
- }
- c.implementsGoogStringTypedString && (c = c.getTypedStringValue());
- goog.asserts.assert("string" === typeof c || "number" === typeof c, "String or number value expected, got " + _typeof(c) + " with value: " + c);
- return b + '="' + goog.string.internal.htmlEscape(String(c)) + '"';
- };
- goog.html.SafeHtml.getStyleValue_ = function (a) {
- if (!goog.isObject(a)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'The "style" attribute requires goog.html.SafeStyle or map of style properties, ' + _typeof(a) + " given: " + a : "");
- a instanceof goog.html.SafeStyle || (a = goog.html.SafeStyle.create(a));
- return goog.html.SafeStyle.unwrap(a);
- };
- goog.html.SafeHtml.createWithDir = function (a, b, c, d) {
- b = goog.html.SafeHtml.create(b, c, d);
- b.dir_ = a;
- return b;
- };
- goog.html.SafeHtml.join = function (a, b) {
- a = goog.html.SafeHtml.htmlEscape(a);
- var c = a.getDirection(),
- d = [],
- e = function e(a) {
- Array.isArray(a) ? goog.array.forEach(a, e) : (a = goog.html.SafeHtml.htmlEscape(a), d.push(goog.html.SafeHtml.unwrap(a)), a = a.getDirection(), c == goog.i18n.bidi.Dir.NEUTRAL ? c = a : a != goog.i18n.bidi.Dir.NEUTRAL && c != a && (c = null));
- };
- goog.array.forEach(b, e);
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d.join(goog.html.SafeHtml.unwrap(a)), c);
- };
- goog.html.SafeHtml.concat = function (a) {
- return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY, Array.prototype.slice.call(arguments));
- };
- goog.html.SafeHtml.concatWithDir = function (a, b) {
- var c = goog.html.SafeHtml.concat(goog.array.slice(arguments, 1));
- c.dir_ = a;
- return c;
- };
- goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
- goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse = function (a, b) {
- return new goog.html.SafeHtml().initSecurityPrivateDoNotAccessOrElse_(a, b);
- };
- goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a, b) {
- this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a) : a;
- this.dir_ = b;
- return this;
- };
- goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse = function (a, b, c) {
- var d = null;
- var e = "<" + a + goog.html.SafeHtml.stringifyAttributes(a, b);
- null == c ? c = [] : Array.isArray(c) || (c = [c]);
- goog.dom.tags.isVoidTag(a.toLowerCase()) ? (goog.asserts.assert(!c.length, "Void tag <" + a + "> does not allow content."), e += ">") : (d = goog.html.SafeHtml.concat(c), e += ">" + goog.html.SafeHtml.unwrap(d) + "</" + a + ">", d = d.getDirection());
- (a = b && b.dir) && (d = /^(ltr|rtl|auto)$/i.test(a) ? goog.i18n.bidi.Dir.NEUTRAL : null);
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e, d);
- };
- goog.html.SafeHtml.stringifyAttributes = function (a, b) {
- var c = "";
- if (b) for (var d in b) {
- if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Invalid attribute name "' + d + '".' : "");
- var e = b[d];
- null != e && (c += " " + goog.html.SafeHtml.getAttrNameAndValue_(a, d, e));
- }
- return c;
- };
- goog.html.SafeHtml.combineAttributes = function (a, b, c) {
- var d = {},
- e;
- for (e in a) {
- goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = a[e];
- }
- for (e in b) {
- goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = b[e];
- }
- if (c) for (e in c) {
- var f = e.toLowerCase();
- if (f in a) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + f + '" attribute, got "' + e + '" with value "' + c[e] + '"' : "");
- f in b && delete d[f];
- d[e] = c[e];
- }
- return d;
- };
- goog.html.SafeHtml.DOCTYPE_HTML = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>", goog.i18n.bidi.Dir.NEUTRAL);
- goog.html.SafeHtml.EMPTY = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("", goog.i18n.bidi.Dir.NEUTRAL);
- goog.html.SafeHtml.BR = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>", goog.i18n.bidi.Dir.NEUTRAL);
- goog.html.uncheckedconversions = {};
- goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract = function (a, b, c) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b, c || null);
- };
- goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract = function (a, b) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract = function (a, b) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract = function (a, b) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract = function (a, b) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract = function (a, b) {
- goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
- goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
- return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
- };
- goog.dom.safe = {};
- goog.dom.safe.InsertAdjacentHtmlPosition = {
- AFTERBEGIN: "afterbegin",
- AFTEREND: "afterend",
- BEFOREBEGIN: "beforebegin",
- BEFOREEND: "beforeend"
- };
- goog.dom.safe.insertAdjacentHtml = function (a, b, c) {
- a.insertAdjacentHTML(b, goog.html.SafeHtml.unwrapTrustedHTML(c));
- };
- goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ = {
- MATH: !0,
- SCRIPT: !0,
- STYLE: !0,
- SVG: !0,
- TEMPLATE: !0
- };
- goog.dom.safe.isInnerHtmlCleanupRecursive_ = goog.functions.cacheReturnValue(function () {
- if (goog.DEBUG && "undefined" === typeof document) return !1;
- var a = document.createElement("div"),
- b = document.createElement("div");
- b.appendChild(document.createElement("div"));
- a.appendChild(b);
- if (goog.DEBUG && !a.firstChild) return !1;
- b = a.firstChild.firstChild;
- a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);
- return !b.parentElement;
- });
- goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse = function (a, b) {
- if (goog.dom.safe.isInnerHtmlCleanupRecursive_()) for (; a.lastChild;) {
- a.removeChild(a.lastChild);
- }
- a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
- };
- goog.dom.safe.setInnerHtml = function (a, b) {
- if (goog.asserts.ENABLE_ASSERTS) {
- var c = a.tagName.toUpperCase();
- if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c]) throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of " + a.tagName + ".");
- }
- goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a, b);
- };
- goog.dom.safe.setOuterHtml = function (a, b) {
- a.outerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
- };
- goog.dom.safe.setFormElementAction = function (a, b) {
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- goog.dom.asserts.assertIsHTMLFormElement(a).action = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setButtonFormAction = function (a, b) {
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- goog.dom.asserts.assertIsHTMLButtonElement(a).formAction = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setInputFormAction = function (a, b) {
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- goog.dom.asserts.assertIsHTMLInputElement(a).formAction = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setStyle = function (a, b) {
- a.style.cssText = goog.html.SafeStyle.unwrap(b);
- };
- goog.dom.safe.documentWrite = function (a, b) {
- a.write(goog.html.SafeHtml.unwrapTrustedHTML(b));
- };
- goog.dom.safe.setAnchorHref = function (a, b) {
- goog.dom.asserts.assertIsHTMLAnchorElement(a);
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- a.href = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setImageSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLImageElement(a);
- if (!(b instanceof goog.html.SafeUrl)) {
- var c = /^data:image\//i.test(b);
- b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
- }
- a.src = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setAudioSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLAudioElement(a);
- if (!(b instanceof goog.html.SafeUrl)) {
- var c = /^data:audio\//i.test(b);
- b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
- }
- a.src = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setVideoSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLVideoElement(a);
- if (!(b instanceof goog.html.SafeUrl)) {
- var c = /^data:video\//i.test(b);
- b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
- }
- a.src = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.setEmbedSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLEmbedElement(a);
- a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
- };
- goog.dom.safe.setFrameSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLFrameElement(a);
- a.src = goog.html.TrustedResourceUrl.unwrap(b);
- };
- goog.dom.safe.setIframeSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLIFrameElement(a);
- a.src = goog.html.TrustedResourceUrl.unwrap(b);
- };
- goog.dom.safe.setIframeSrcdoc = function (a, b) {
- goog.dom.asserts.assertIsHTMLIFrameElement(a);
- a.srcdoc = goog.html.SafeHtml.unwrapTrustedHTML(b);
- };
- goog.dom.safe.setLinkHrefAndRel = function (a, b, c) {
- goog.dom.asserts.assertIsHTMLLinkElement(a);
- a.rel = c;
- goog.string.internal.caseInsensitiveContains(c, "stylesheet") ? (goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl, 'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'), a.href = goog.html.TrustedResourceUrl.unwrap(b)) : a.href = b instanceof goog.html.TrustedResourceUrl ? goog.html.TrustedResourceUrl.unwrap(b) : b instanceof goog.html.SafeUrl ? goog.html.SafeUrl.unwrap(b) : goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(b));
- };
- goog.dom.safe.setObjectData = function (a, b) {
- goog.dom.asserts.assertIsHTMLObjectElement(a);
- a.data = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
- };
- goog.dom.safe.setScriptSrc = function (a, b) {
- goog.dom.asserts.assertIsHTMLScriptElement(a);
- a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
- (b = goog.getScriptNonce()) && a.setAttribute("nonce", b);
- };
- goog.dom.safe.setScriptContent = function (a, b) {
- goog.dom.asserts.assertIsHTMLScriptElement(a);
- a.text = goog.html.SafeScript.unwrapTrustedScript(b);
- (b = goog.getScriptNonce()) && a.setAttribute("nonce", b);
- };
- goog.dom.safe.setLocationHref = function (a, b) {
- goog.dom.asserts.assertIsLocation(a);
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- a.href = goog.html.SafeUrl.unwrap(b);
- };
- goog.dom.safe.assignLocation = function (a, b) {
- goog.dom.asserts.assertIsLocation(a);
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- a.assign(goog.html.SafeUrl.unwrap(b));
- };
- goog.dom.safe.replaceLocation = function (a, b) {
- b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
- a.replace(goog.html.SafeUrl.unwrap(b));
- };
- goog.dom.safe.openInWindow = function (a, b, c, d, e) {
- a = a instanceof goog.html.SafeUrl ? a : goog.html.SafeUrl.sanitizeAssertUnchanged(a);
- b = b || goog.global;
- c = c instanceof goog.string.Const ? goog.string.Const.unwrap(c) : c || "";
- return b.open(goog.html.SafeUrl.unwrap(a), c, d, e);
- };
- goog.dom.safe.parseFromStringHtml = function (a, b) {
- return goog.dom.safe.parseFromString(a, b, "text/html");
- };
- goog.dom.safe.parseFromString = function (a, b, c) {
- return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b), c);
- };
- goog.dom.safe.createImageFromBlob = function (a) {
- if (!/^image\/.*/g.test(a.type)) throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");
- var b = goog.global.URL.createObjectURL(a);
- a = new goog.global.Image();
- a.onload = function () {
- goog.global.URL.revokeObjectURL(b);
- };
- goog.dom.safe.setImageSrc(a, goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."), b));
- return a;
- };
- goog.string.DETECT_DOUBLE_ESCAPING = !1;
- goog.string.FORCE_NON_DOM_HTML_UNESCAPING = !1;
- goog.string.Unicode = {
- NBSP: "\xA0"
- };
- goog.string.startsWith = goog.string.internal.startsWith;
- goog.string.endsWith = goog.string.internal.endsWith;
- goog.string.caseInsensitiveStartsWith = goog.string.internal.caseInsensitiveStartsWith;
- goog.string.caseInsensitiveEndsWith = goog.string.internal.caseInsensitiveEndsWith;
- goog.string.caseInsensitiveEquals = goog.string.internal.caseInsensitiveEquals;
- goog.string.subs = function (a, b) {
- for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) {
- d += c.shift() + e.shift();
- }
- return d + c.join("%s");
- };
- goog.string.collapseWhitespace = function (a) {
- return a.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "");
- };
- goog.string.isEmptyOrWhitespace = goog.string.internal.isEmptyOrWhitespace;
- goog.string.isEmptyString = function (a) {
- return 0 == a.length;
- };
- goog.string.isEmpty = goog.string.isEmptyOrWhitespace;
- goog.string.isEmptyOrWhitespaceSafe = function (a) {
- return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a));
- };
- goog.string.isEmptySafe = goog.string.isEmptyOrWhitespaceSafe;
- goog.string.isBreakingWhitespace = function (a) {
- return !/[^\t\n\r ]/.test(a);
- };
- goog.string.isAlpha = function (a) {
- return !/[^a-zA-Z]/.test(a);
- };
- goog.string.isNumeric = function (a) {
- return !/[^0-9]/.test(a);
- };
- goog.string.isAlphaNumeric = function (a) {
- return !/[^a-zA-Z0-9]/.test(a);
- };
- goog.string.isSpace = function (a) {
- return " " == a;
- };
- goog.string.isUnicodeChar = function (a) {
- return 1 == a.length && " " <= a && "~" >= a || "\x80" <= a && "\uFFFD" >= a;
- };
- goog.string.stripNewlines = function (a) {
- return a.replace(/(\r\n|\r|\n)+/g, " ");
- };
- goog.string.canonicalizeNewlines = function (a) {
- return a.replace(/(\r\n|\r|\n)/g, "\n");
- };
- goog.string.normalizeWhitespace = function (a) {
- return a.replace(/\xa0|\s/g, " ");
- };
- goog.string.normalizeSpaces = function (a) {
- return a.replace(/\xa0|[ \t]+/g, " ");
- };
- goog.string.collapseBreakingSpaces = function (a) {
- return a.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "");
- };
- goog.string.trim = goog.string.internal.trim;
- goog.string.trimLeft = function (a) {
- return a.replace(/^[\s\xa0]+/, "");
- };
- goog.string.trimRight = function (a) {
- return a.replace(/[\s\xa0]+$/, "");
- };
- goog.string.caseInsensitiveCompare = goog.string.internal.caseInsensitiveCompare;
- goog.string.numberAwareCompare_ = function (a, b, c) {
- if (a == b) return 0;
- if (!a) return -1;
- if (!b) return 1;
- for (var d = a.toLowerCase().match(c), e = b.toLowerCase().match(c), f = Math.min(d.length, e.length), g = 0; g < f; g++) {
- c = d[g];
- var h = e[g];
- if (c != h) return a = parseInt(c, 10), !isNaN(a) && (b = parseInt(h, 10), !isNaN(b) && a - b) ? a - b : c < h ? -1 : 1;
- }
- return d.length != e.length ? d.length - e.length : a < b ? -1 : 1;
- };
- goog.string.intAwareCompare = function (a, b) {
- return goog.string.numberAwareCompare_(a, b, /\d+|\D+/g);
- };
- goog.string.floatAwareCompare = function (a, b) {
- return goog.string.numberAwareCompare_(a, b, /\d+|\.\d+|\D+/g);
- };
- goog.string.numerateCompare = goog.string.floatAwareCompare;
- goog.string.urlEncode = function (a) {
- return encodeURIComponent(String(a));
- };
- goog.string.urlDecode = function (a) {
- return decodeURIComponent(a.replace(/\+/g, " "));
- };
- goog.string.newLineToBr = goog.string.internal.newLineToBr;
- goog.string.htmlEscape = function (a, b) {
- a = goog.string.internal.htmlEscape(a, b);
- goog.string.DETECT_DOUBLE_ESCAPING && (a = a.replace(goog.string.E_RE_, "e"));
- return a;
- };
- goog.string.E_RE_ = /e/g;
- goog.string.unescapeEntities = function (a) {
- return goog.string.contains(a, "&") ? !goog.string.FORCE_NON_DOM_HTML_UNESCAPING && "document" in goog.global ? goog.string.unescapeEntitiesUsingDom_(a) : goog.string.unescapePureXmlEntities_(a) : a;
- };
- goog.string.unescapeEntitiesWithDocument = function (a, b) {
- return goog.string.contains(a, "&") ? goog.string.unescapeEntitiesUsingDom_(a, b) : a;
- };
- goog.string.unescapeEntitiesUsingDom_ = function (a, b) {
- var c = {
- "&": "&",
- "<": "<",
- ">": ">",
- """: '"'
- };
- var d = b ? b.createElement("div") : goog.global.document.createElement("div");
- return a.replace(goog.string.HTML_ENTITY_PATTERN_, function (a, b) {
- var e = c[a];
- if (e) return e;
- "#" == b.charAt(0) && (b = Number("0" + b.substr(1)), isNaN(b) || (e = String.fromCharCode(b)));
- e || (goog.dom.safe.setInnerHtml(d, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."), a + " ")), e = d.firstChild.nodeValue.slice(0, -1));
- return c[a] = e;
- });
- };
- goog.string.unescapePureXmlEntities_ = function (a) {
- return a.replace(/&([^;]+);/g, function (a, c) {
- switch (c) {
- case "amp":
- return "&";
- case "lt":
- return "<";
- case "gt":
- return ">";
- case "quot":
- return '"';
- default:
- return "#" != c.charAt(0) || (c = Number("0" + c.substr(1)), isNaN(c)) ? a : String.fromCharCode(c);
- }
- });
- };
- goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g;
- goog.string.whitespaceEscape = function (a, b) {
- return goog.string.newLineToBr(a.replace(/ /g, "  "), b);
- };
- goog.string.preserveSpaces = function (a) {
- return a.replace(/(^|[\n ]) /g, "$1" + goog.string.Unicode.NBSP);
- };
- goog.string.stripQuotes = function (a, b) {
- for (var c = b.length, d = 0; d < c; d++) {
- var e = 1 == c ? b : b.charAt(d);
- if (a.charAt(0) == e && a.charAt(a.length - 1) == e) return a.substring(1, a.length - 1);
- }
- return a;
- };
- goog.string.truncate = function (a, b, c) {
- c && (a = goog.string.unescapeEntities(a));
- a.length > b && (a = a.substring(0, b - 3) + "...");
- c && (a = goog.string.htmlEscape(a));
- return a;
- };
- goog.string.truncateMiddle = function (a, b, c, d) {
- c && (a = goog.string.unescapeEntities(a));
- if (d && a.length > b) {
- d > b && (d = b);
- var e = a.length - d;
- a = a.substring(0, b - d) + "..." + a.substring(e);
- } else a.length > b && (d = Math.floor(b / 2), e = a.length - d, a = a.substring(0, d + b % 2) + "..." + a.substring(e));
- c && (a = goog.string.htmlEscape(a));
- return a;
- };
- goog.string.specialEscapeChars_ = {
- "\x00": "\\0",
- "\b": "\\b",
- "\f": "\\f",
- "\n": "\\n",
- "\r": "\\r",
- "\t": "\\t",
- "\x0B": "\\x0B",
- '"': '\\"',
- "\\": "\\\\",
- "<": "\\u003C"
- };
- goog.string.jsEscapeCache_ = {
- "'": "\\'"
- };
- goog.string.quote = function (a) {
- a = String(a);
- for (var b = ['"'], c = 0; c < a.length; c++) {
- var d = a.charAt(c),
- e = d.charCodeAt(0);
- b[c + 1] = goog.string.specialEscapeChars_[d] || (31 < e && 127 > e ? d : goog.string.escapeChar(d));
- }
- b.push('"');
- return b.join("");
- };
- goog.string.escapeString = function (a) {
- for (var b = [], c = 0; c < a.length; c++) {
- b[c] = goog.string.escapeChar(a.charAt(c));
- }
- return b.join("");
- };
- goog.string.escapeChar = function (a) {
- if (a in goog.string.jsEscapeCache_) return goog.string.jsEscapeCache_[a];
- if (a in goog.string.specialEscapeChars_) return goog.string.jsEscapeCache_[a] = goog.string.specialEscapeChars_[a];
- var b = a.charCodeAt(0);
- if (31 < b && 127 > b) var c = a;else {
- if (256 > b) {
- if (c = "\\x", 16 > b || 256 < b) c += "0";
- } else c = "\\u", 4096 > b && (c += "0");
- c += b.toString(16).toUpperCase();
- }
- return goog.string.jsEscapeCache_[a] = c;
- };
- goog.string.contains = goog.string.internal.contains;
- goog.string.caseInsensitiveContains = goog.string.internal.caseInsensitiveContains;
- goog.string.countOf = function (a, b) {
- return a && b ? a.split(b).length - 1 : 0;
- };
- goog.string.removeAt = function (a, b, c) {
- var d = a;
- 0 <= b && b < a.length && 0 < c && (d = a.substr(0, b) + a.substr(b + c, a.length - b - c));
- return d;
- };
- goog.string.remove = function (a, b) {
- return a.replace(b, "");
- };
- goog.string.removeAll = function (a, b) {
- b = new RegExp(goog.string.regExpEscape(b), "g");
- return a.replace(b, "");
- };
- goog.string.replaceAll = function (a, b, c) {
- b = new RegExp(goog.string.regExpEscape(b), "g");
- return a.replace(b, c.replace(/\$/g, "$$$$"));
- };
- goog.string.regExpEscape = function (a) {
- return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08");
- };
- goog.string.repeat = String.prototype.repeat ? function (a, b) {
- return a.repeat(b);
- } : function (a, b) {
- return Array(b + 1).join(a);
- };
- goog.string.padNumber = function (a, b, c) {
- a = void 0 !== c ? a.toFixed(c) : String(a);
- c = a.indexOf(".");
- -1 == c && (c = a.length);
- return goog.string.repeat("0", Math.max(0, b - c)) + a;
- };
- goog.string.makeSafe = function (a) {
- return null == a ? "" : String(a);
- };
- goog.string.buildString = function (a) {
- return Array.prototype.join.call(arguments, "");
- };
- goog.string.getRandomString = function () {
- return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ goog.now()).toString(36);
- };
- goog.string.compareVersions = goog.string.internal.compareVersions;
- goog.string.hashCode = function (a) {
- for (var b = 0, c = 0; c < a.length; ++c) {
- b = 31 * b + a.charCodeAt(c) >>> 0;
- }
- return b;
- };
- goog.string.uniqueStringCounter_ = 2147483648 * Math.random() | 0;
- goog.string.createUniqueString = function () {
- return "goog_" + goog.string.uniqueStringCounter_++;
- };
- goog.string.toNumber = function (a) {
- var b = Number(a);
- return 0 == b && goog.string.isEmptyOrWhitespace(a) ? NaN : b;
- };
- goog.string.isLowerCamelCase = function (a) {
- return /^[a-z]+([A-Z][a-z]*)*$/.test(a);
- };
- goog.string.isUpperCamelCase = function (a) {
- return /^([A-Z][a-z]*)+$/.test(a);
- };
- goog.string.toCamelCase = function (a) {
- return String(a).replace(/\-([a-z])/g, function (a, c) {
- return c.toUpperCase();
- });
- };
- goog.string.toSelectorCase = function (a) {
- return String(a).replace(/([A-Z])/g, "-$1").toLowerCase();
- };
- goog.string.toTitleCase = function (a, b) {
- b = "string" === typeof b ? goog.string.regExpEscape(b) : "\\s";
- return a.replace(new RegExp("(^" + (b ? "|[" + b + "]+" : "") + ")([a-z])", "g"), function (a, b, e) {
- return b + e.toUpperCase();
- });
- };
- goog.string.capitalize = function (a) {
- return String(a.charAt(0)).toUpperCase() + String(a.substr(1)).toLowerCase();
- };
- goog.string.parseInt = function (a) {
- isFinite(a) && (a = String(a));
- return "string" === typeof a ? /^\s*-?0x/i.test(a) ? parseInt(a, 16) : parseInt(a, 10) : NaN;
- };
- goog.string.splitLimit = function (a, b, c) {
- a = a.split(b);
- for (var d = []; 0 < c && a.length;) {
- d.push(a.shift()), c--;
- }
- a.length && d.push(a.join(b));
- return d;
- };
- goog.string.lastComponent = function (a, b) {
- if (b) "string" == typeof b && (b = [b]);else return a;
- for (var c = -1, d = 0; d < b.length; d++) {
- if ("" != b[d]) {
- var e = a.lastIndexOf(b[d]);
- e > c && (c = e);
- }
- }
- return -1 == c ? a : a.slice(c + 1);
- };
- goog.string.editDistance = function (a, b) {
- var c = [],
- d = [];
- if (a == b) return 0;
- if (!a.length || !b.length) return Math.max(a.length, b.length);
- for (var e = 0; e < b.length + 1; e++) {
- c[e] = e;
- }
- for (e = 0; e < a.length; e++) {
- d[0] = e + 1;
- for (var f = 0; f < b.length; f++) {
- d[f + 1] = Math.min(d[f] + 1, c[f + 1] + 1, c[f] + Number(a[e] != b[f]));
- }
- for (f = 0; f < c.length; f++) {
- c[f] = d[f];
- }
- }
- return d[b.length];
- };
- goog.labs.userAgent.engine = {};
- goog.labs.userAgent.engine.isPresto = function () {
- return goog.labs.userAgent.util.matchUserAgent("Presto");
- };
- goog.labs.userAgent.engine.isTrident = function () {
- return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
- };
- goog.labs.userAgent.engine.isEdge = function () {
- return goog.labs.userAgent.util.matchUserAgent("Edge");
- };
- goog.labs.userAgent.engine.isWebKit = function () {
- return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge();
- };
- goog.labs.userAgent.engine.isGecko = function () {
- return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge();
- };
- goog.labs.userAgent.engine.getVersion = function () {
- var a = goog.labs.userAgent.util.getUserAgent();
- if (a) {
- a = goog.labs.userAgent.util.extractVersionTuples(a);
- var b = goog.labs.userAgent.engine.getEngineTuple_(a);
- if (b) return "Gecko" == b[0] ? goog.labs.userAgent.engine.getVersionForKey_(a, "Firefox") : b[1];
- a = a[0];
- var c;
- if (a && (c = a[2]) && (c = /Trident\/([^\s;]+)/.exec(c))) return c[1];
- }
- return "";
- };
- goog.labs.userAgent.engine.getEngineTuple_ = function (a) {
- if (!goog.labs.userAgent.engine.isEdge()) return a[1];
- for (var b = 0; b < a.length; b++) {
- var c = a[b];
- if ("Edge" == c[0]) return c;
- }
- };
- goog.labs.userAgent.engine.isVersionOrHigher = function (a) {
- return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), a);
- };
- goog.labs.userAgent.engine.getVersionForKey_ = function (a, b) {
- return (a = goog.array.find(a, function (a) {
- return b == a[0];
- })) && a[1] || "";
- };
- goog.labs.userAgent.platform = {};
- goog.labs.userAgent.platform.isAndroid = function () {
- return goog.labs.userAgent.util.matchUserAgent("Android");
- };
- goog.labs.userAgent.platform.isIpod = function () {
- return goog.labs.userAgent.util.matchUserAgent("iPod");
- };
- goog.labs.userAgent.platform.isIphone = function () {
- return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad");
- };
- goog.labs.userAgent.platform.isIpad = function () {
- return goog.labs.userAgent.util.matchUserAgent("iPad");
- };
- goog.labs.userAgent.platform.isIos = function () {
- return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod();
- };
- goog.labs.userAgent.platform.isMacintosh = function () {
- return goog.labs.userAgent.util.matchUserAgent("Macintosh");
- };
- goog.labs.userAgent.platform.isLinux = function () {
- return goog.labs.userAgent.util.matchUserAgent("Linux");
- };
- goog.labs.userAgent.platform.isWindows = function () {
- return goog.labs.userAgent.util.matchUserAgent("Windows");
- };
- goog.labs.userAgent.platform.isChromeOS = function () {
- return goog.labs.userAgent.util.matchUserAgent("CrOS");
- };
- goog.labs.userAgent.platform.isChromecast = function () {
- return goog.labs.userAgent.util.matchUserAgent("CrKey");
- };
- goog.labs.userAgent.platform.isKaiOS = function () {
- return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS");
- };
- goog.labs.userAgent.platform.getVersion = function () {
- var a = goog.labs.userAgent.util.getUserAgent(),
- b = "";
- goog.labs.userAgent.platform.isWindows() ? (b = /Windows (?:NT|Phone) ([0-9.]+)/, b = (a = b.exec(a)) ? a[1] : "0.0") : goog.labs.userAgent.platform.isIos() ? (b = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, b = (a = b.exec(a)) && a[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (b = /Mac OS X ([0-9_.]+)/, b = (a = b.exec(a)) ? a[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (b = /(?:KaiOS)\/(\S+)/i, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isAndroid() ? (b = /Android\s+([^\);]+)(\)|;)/, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isChromeOS() && (b = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, b = (a = b.exec(a)) && a[1]);
- return b || "";
- };
- goog.labs.userAgent.platform.isVersionOrHigher = function (a) {
- return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), a);
- };
- goog.reflect = {};
- goog.reflect.object = function (a, b) {
- return b;
- };
- goog.reflect.objectProperty = function (a, b) {
- return a;
- };
- goog.reflect.sinkValue = function (a) {
- goog.reflect.sinkValue[" "](a);
- return a;
- };
- goog.reflect.sinkValue[" "] = goog.nullFunction;
- goog.reflect.canAccessProperty = function (a, b) {
- try {
- return goog.reflect.sinkValue(a[b]), !0;
- } catch (c) {}
- return !1;
- };
- goog.reflect.cache = function (a, b, c, d) {
- d = d ? d(b) : b;
- return Object.prototype.hasOwnProperty.call(a, d) ? a[d] : a[d] = c(b);
- };
- goog.userAgent = {};
- goog.userAgent.ASSUME_IE = !1;
- goog.userAgent.ASSUME_EDGE = !1;
- goog.userAgent.ASSUME_GECKO = !1;
- goog.userAgent.ASSUME_WEBKIT = !1;
- goog.userAgent.ASSUME_MOBILE_WEBKIT = !1;
- goog.userAgent.ASSUME_OPERA = !1;
- goog.userAgent.ASSUME_ANY_VERSION = !1;
- goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
- goog.userAgent.getUserAgentString = function () {
- return goog.labs.userAgent.util.getUserAgent();
- };
- goog.userAgent.getNavigatorTyped = function () {
- return goog.global.navigator || null;
- };
- goog.userAgent.getNavigator = function () {
- return goog.userAgent.getNavigatorTyped();
- };
- goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera();
- goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE();
- goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge();
- goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE;
- goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko();
- goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit();
- goog.userAgent.isMobile_ = function () {
- return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile");
- };
- goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_();
- goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
- goog.userAgent.determinePlatform_ = function () {
- var a = goog.userAgent.getNavigatorTyped();
- return a && a.platform || "";
- };
- goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
- goog.userAgent.ASSUME_MAC = !1;
- goog.userAgent.ASSUME_WINDOWS = !1;
- goog.userAgent.ASSUME_LINUX = !1;
- goog.userAgent.ASSUME_X11 = !1;
- goog.userAgent.ASSUME_ANDROID = !1;
- goog.userAgent.ASSUME_IPHONE = !1;
- goog.userAgent.ASSUME_IPAD = !1;
- goog.userAgent.ASSUME_IPOD = !1;
- goog.userAgent.ASSUME_KAIOS = !1;
- goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;
- goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh();
- goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows();
- goog.userAgent.isLegacyLinux_ = function () {
- return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS();
- };
- goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();
- goog.userAgent.isX11_ = function () {
- var a = goog.userAgent.getNavigatorTyped();
- return !!a && goog.string.contains(a.appVersion || "", "X11");
- };
- goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();
- goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid();
- goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone();
- goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();
- goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod();
- goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos();
- goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS();
- goog.userAgent.determineVersion_ = function () {
- var a = "",
- b = goog.userAgent.getVersionRegexResult_();
- b && (a = b ? b[1] : "");
- return goog.userAgent.IE && (b = goog.userAgent.getDocumentMode_(), null != b && b > parseFloat(a)) ? String(b) : a;
- };
- goog.userAgent.getVersionRegexResult_ = function () {
- var a = goog.userAgent.getUserAgentString();
- if (goog.userAgent.GECKO) return /rv:([^\);]+)(\)|;)/.exec(a);
- if (goog.userAgent.EDGE) return /Edge\/([\d\.]+)/.exec(a);
- if (goog.userAgent.IE) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
- if (goog.userAgent.WEBKIT) return /WebKit\/(\S+)/.exec(a);
- if (goog.userAgent.OPERA) return /(?:Version)[ \/]?(\S+)/.exec(a);
- };
- goog.userAgent.getDocumentMode_ = function () {
- var a = goog.global.document;
- return a ? a.documentMode : void 0;
- };
- goog.userAgent.VERSION = goog.userAgent.determineVersion_();
- goog.userAgent.compare = function (a, b) {
- return goog.string.compareVersions(a, b);
- };
- goog.userAgent.isVersionOrHigherCache_ = {};
- goog.userAgent.isVersionOrHigher = function (a) {
- return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, a, function () {
- return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, a);
- });
- };
- goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher;
- goog.userAgent.isDocumentModeOrHigher = function (a) {
- return Number(goog.userAgent.DOCUMENT_MODE) >= a;
- };
- goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher;
- goog.userAgent.DOCUMENT_MODE = function () {
- if (goog.global.document && goog.userAgent.IE) {
- var a = goog.userAgent.getDocumentMode_();
- return a ? a : parseInt(goog.userAgent.VERSION, 10) || void 0;
- }
- }();
- goog.userAgent.product = {};
- goog.userAgent.product.ASSUME_FIREFOX = !1;
- goog.userAgent.product.ASSUME_IPHONE = !1;
- goog.userAgent.product.ASSUME_IPAD = !1;
- goog.userAgent.product.ASSUME_ANDROID = !1;
- goog.userAgent.product.ASSUME_CHROME = !1;
- goog.userAgent.product.ASSUME_SAFARI = !1;
- goog.userAgent.product.PRODUCT_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_OPERA || goog.userAgent.product.ASSUME_FIREFOX || goog.userAgent.product.ASSUME_IPHONE || goog.userAgent.product.ASSUME_IPAD || goog.userAgent.product.ASSUME_ANDROID || goog.userAgent.product.ASSUME_CHROME || goog.userAgent.product.ASSUME_SAFARI;
- goog.userAgent.product.OPERA = goog.userAgent.OPERA;
- goog.userAgent.product.IE = goog.userAgent.IE;
- goog.userAgent.product.EDGE = goog.userAgent.EDGE;
- goog.userAgent.product.FIREFOX = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_FIREFOX : goog.labs.userAgent.browser.isFirefox();
- goog.userAgent.product.isIphoneOrIpod_ = function () {
- return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpod();
- };
- goog.userAgent.product.IPHONE = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPHONE : goog.userAgent.product.isIphoneOrIpod_();
- goog.userAgent.product.IPAD = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();
- goog.userAgent.product.ANDROID = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_ANDROID : goog.labs.userAgent.browser.isAndroidBrowser();
- goog.userAgent.product.CHROME = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_CHROME : goog.labs.userAgent.browser.isChrome();
- goog.userAgent.product.isSafariDesktop_ = function () {
- return goog.labs.userAgent.browser.isSafari() && !goog.labs.userAgent.platform.isIos();
- };
- goog.userAgent.product.SAFARI = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_SAFARI : goog.userAgent.product.isSafariDesktop_();
- goog.crypt.base64 = {};
- goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- goog.crypt.base64.ENCODED_VALS = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ + "+/=";
- goog.crypt.base64.ENCODED_VALS_WEBSAFE = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ + "-_.";
- goog.crypt.base64.Alphabet = {
- DEFAULT: 0,
- NO_PADDING: 1,
- WEBSAFE: 2,
- WEBSAFE_DOT_PADDING: 3,
- WEBSAFE_NO_PADDING: 4
- };
- goog.crypt.base64.paddingChars_ = "=.";
- goog.crypt.base64.isPadding_ = function (a) {
- return goog.string.contains(goog.crypt.base64.paddingChars_, a);
- };
- goog.crypt.base64.byteToCharMaps_ = {};
- goog.crypt.base64.charToByteMap_ = null;
- goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ = goog.userAgent.GECKO || goog.userAgent.WEBKIT && !goog.userAgent.product.SAFARI || goog.userAgent.OPERA;
- goog.crypt.base64.HAS_NATIVE_ENCODE_ = goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ || "function" == typeof goog.global.btoa;
- goog.crypt.base64.HAS_NATIVE_DECODE_ = goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ || !goog.userAgent.product.SAFARI && !goog.userAgent.IE && "function" == typeof goog.global.atob;
- goog.crypt.base64.encodeByteArray = function (a, b) {
- goog.asserts.assert(goog.isArrayLike(a), "encodeByteArray takes an array as a parameter");
- void 0 === b && (b = goog.crypt.base64.Alphabet.DEFAULT);
- goog.crypt.base64.init_();
- b = goog.crypt.base64.byteToCharMaps_[b];
- for (var c = [], d = 0; d < a.length; d += 3) {
- var e = a[d],
- f = d + 1 < a.length,
- g = f ? a[d + 1] : 0,
- h = d + 2 < a.length,
- k = h ? a[d + 2] : 0,
- l = e >> 2;
- e = (e & 3) << 4 | g >> 4;
- g = (g & 15) << 2 | k >> 6;
- k &= 63;
- h || (k = 64, f || (g = 64));
- c.push(b[l], b[e], b[g] || "", b[k] || "");
- }
- return c.join("");
- };
- goog.crypt.base64.encodeString = function (a, b) {
- return goog.crypt.base64.HAS_NATIVE_ENCODE_ && !b ? goog.global.btoa(a) : goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a), b);
- };
- goog.crypt.base64.decodeString = function (a, b) {
- if (goog.crypt.base64.HAS_NATIVE_DECODE_ && !b) return goog.global.atob(a);
- var c = "";
- goog.crypt.base64.decodeStringInternal_(a, function (a) {
- c += String.fromCharCode(a);
- });
- return c;
- };
- goog.crypt.base64.decodeStringToByteArray = function (a, b) {
- var c = [];
- goog.crypt.base64.decodeStringInternal_(a, function (a) {
- c.push(a);
- });
- return c;
- };
- goog.crypt.base64.decodeStringToUint8Array = function (a) {
- goog.asserts.assert(!goog.userAgent.IE || goog.userAgent.isVersionOrHigher("10"), "Browser does not support typed arrays");
- var b = a.length,
- c = 3 * b / 4;
- c % 3 ? c = Math.floor(c) : goog.crypt.base64.isPadding_(a[b - 1]) && (c = goog.crypt.base64.isPadding_(a[b - 2]) ? c - 2 : c - 1);
- var d = new Uint8Array(c),
- e = 0;
- goog.crypt.base64.decodeStringInternal_(a, function (a) {
- d[e++] = a;
- });
- return d.subarray(0, e);
- };
- goog.crypt.base64.decodeStringInternal_ = function (a, b) {
- function c(b) {
- for (; d < a.length;) {
- var c = a.charAt(d++),
- e = goog.crypt.base64.charToByteMap_[c];
- if (null != e) return e;
- if (!goog.string.isEmptyOrWhitespace(c)) throw Error("Unknown base64 encoding at char: " + c);
- }
- return b;
- }
- goog.crypt.base64.init_();
- for (var d = 0;;) {
- var e = c(-1),
- f = c(0),
- g = c(64),
- h = c(64);
- if (64 === h && -1 === e) break;
- b(e << 2 | f >> 4);
- 64 != g && (b(f << 4 & 240 | g >> 2), 64 != h && b(g << 6 & 192 | h));
- }
- };
- goog.crypt.base64.init_ = function () {
- if (!goog.crypt.base64.charToByteMap_) {
- goog.crypt.base64.charToByteMap_ = {};
- for (var a = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""), b = ["+/=", "+/", "-_=", "-_.", "-_"], c = 0; 5 > c; c++) {
- var d = a.concat(b[c].split(""));
- goog.crypt.base64.byteToCharMaps_[c] = d;
- for (var e = 0; e < d.length; e++) {
- var f = d[e],
- g = goog.crypt.base64.charToByteMap_[f];
- void 0 === g ? goog.crypt.base64.charToByteMap_[f] = e : goog.asserts.assert(g === e);
- }
- }
- }
- };
- jspb.utils = {};
- jspb.utils.split64Low = 0;
- jspb.utils.split64High = 0;
- jspb.utils.splitUint64 = function (a) {
- var b = a >>> 0;
- a = Math.floor((a - b) / jspb.BinaryConstants.TWO_TO_32) >>> 0;
- jspb.utils.split64Low = b;
- jspb.utils.split64High = a;
- };
- jspb.utils.splitInt64 = function (a) {
- var b = 0 > a;
- a = Math.abs(a);
- var c = a >>> 0;
- a = Math.floor((a - c) / jspb.BinaryConstants.TWO_TO_32);
- a >>>= 0;
- b && (a = ~a >>> 0, c = (~c >>> 0) + 1, 4294967295 < c && (c = 0, a++, 4294967295 < a && (a = 0)));
- jspb.utils.split64Low = c;
- jspb.utils.split64High = a;
- };
- jspb.utils.splitZigzag64 = function (a) {
- var b = 0 > a;
- a = 2 * Math.abs(a);
- jspb.utils.splitUint64(a);
- a = jspb.utils.split64Low;
- var c = jspb.utils.split64High;
- b && (0 == a ? 0 == c ? c = a = 4294967295 : (c--, a = 4294967295) : a--);
- jspb.utils.split64Low = a;
- jspb.utils.split64High = c;
- };
- jspb.utils.splitFloat32 = function (a) {
- var b = 0 > a ? 1 : 0;
- a = b ? -a : a;
- if (0 === a) 0 < 1 / a ? (jspb.utils.split64High = 0, jspb.utils.split64Low = 0) : (jspb.utils.split64High = 0, jspb.utils.split64Low = 2147483648);else if (isNaN(a)) jspb.utils.split64High = 0, jspb.utils.split64Low = 2147483647;else if (a > jspb.BinaryConstants.FLOAT32_MAX) jspb.utils.split64High = 0, jspb.utils.split64Low = (b << 31 | 2139095040) >>> 0;else if (a < jspb.BinaryConstants.FLOAT32_MIN) a = Math.round(a / Math.pow(2, -149)), jspb.utils.split64High = 0, jspb.utils.split64Low = (b << 31 | a) >>> 0;else {
- var c = Math.floor(Math.log(a) / Math.LN2);
- a *= Math.pow(2, -c);
- a = Math.round(a * jspb.BinaryConstants.TWO_TO_23);
- 16777216 <= a && ++c;
- jspb.utils.split64High = 0;
- jspb.utils.split64Low = (b << 31 | c + 127 << 23 | a & 8388607) >>> 0;
- }
- };
- jspb.utils.splitFloat64 = function (a) {
- var b = 0 > a ? 1 : 0;
- a = b ? -a : a;
- if (0 === a) jspb.utils.split64High = 0 < 1 / a ? 0 : 2147483648, jspb.utils.split64Low = 0;else if (isNaN(a)) jspb.utils.split64High = 2147483647, jspb.utils.split64Low = 4294967295;else if (a > jspb.BinaryConstants.FLOAT64_MAX) jspb.utils.split64High = (b << 31 | 2146435072) >>> 0, jspb.utils.split64Low = 0;else if (a < jspb.BinaryConstants.FLOAT64_MIN) {
- var c = a / Math.pow(2, -1074);
- a = c / jspb.BinaryConstants.TWO_TO_32;
- jspb.utils.split64High = (b << 31 | a) >>> 0;
- jspb.utils.split64Low = c >>> 0;
- } else {
- c = a;
- var d = 0;
- if (2 <= c) for (; 2 <= c && 1023 > d;) {
- d++, c /= 2;
- } else for (; 1 > c && -1022 < d;) {
- c *= 2, d--;
- }
- c = a * Math.pow(2, -d);
- a = c * jspb.BinaryConstants.TWO_TO_20 & 1048575;
- c = c * jspb.BinaryConstants.TWO_TO_52 >>> 0;
- jspb.utils.split64High = (b << 31 | d + 1023 << 20 | a) >>> 0;
- jspb.utils.split64Low = c;
- }
- };
- jspb.utils.splitHash64 = function (a) {
- var b = a.charCodeAt(0),
- c = a.charCodeAt(1),
- d = a.charCodeAt(2),
- e = a.charCodeAt(3),
- f = a.charCodeAt(4),
- g = a.charCodeAt(5),
- h = a.charCodeAt(6);
- a = a.charCodeAt(7);
- jspb.utils.split64Low = b + (c << 8) + (d << 16) + (e << 24) >>> 0;
- jspb.utils.split64High = f + (g << 8) + (h << 16) + (a << 24) >>> 0;
- };
- jspb.utils.joinUint64 = function (a, b) {
- return b * jspb.BinaryConstants.TWO_TO_32 + (a >>> 0);
- };
- jspb.utils.joinInt64 = function (a, b) {
- var c = b & 2147483648;
- c && (a = ~a + 1 >>> 0, b = ~b >>> 0, 0 == a && (b = b + 1 >>> 0));
- a = jspb.utils.joinUint64(a, b);
- return c ? -a : a;
- };
- jspb.utils.toZigzag64 = function (a, b, c) {
- var d = b >> 31;
- return c(a << 1 ^ d, (b << 1 | a >>> 31) ^ d);
- };
- jspb.utils.joinZigzag64 = function (a, b) {
- return jspb.utils.fromZigzag64(a, b, jspb.utils.joinInt64);
- };
- jspb.utils.fromZigzag64 = function (a, b, c) {
- var d = -(a & 1);
- return c((a >>> 1 | b << 31) ^ d, b >>> 1 ^ d);
- };
- jspb.utils.joinFloat32 = function (a, b) {
- b = 2 * (a >> 31) + 1;
- var c = a >>> 23 & 255;
- a &= 8388607;
- return 255 == c ? a ? NaN : Infinity * b : 0 == c ? b * Math.pow(2, -149) * a : b * Math.pow(2, c - 150) * (a + Math.pow(2, 23));
- };
- jspb.utils.joinFloat64 = function (a, b) {
- var c = 2 * (b >> 31) + 1,
- d = b >>> 20 & 2047;
- a = jspb.BinaryConstants.TWO_TO_32 * (b & 1048575) + a;
- return 2047 == d ? a ? NaN : Infinity * c : 0 == d ? c * Math.pow(2, -1074) * a : c * Math.pow(2, d - 1075) * (a + jspb.BinaryConstants.TWO_TO_52);
- };
- jspb.utils.joinHash64 = function (a, b) {
- return String.fromCharCode(a >>> 0 & 255, a >>> 8 & 255, a >>> 16 & 255, a >>> 24 & 255, b >>> 0 & 255, b >>> 8 & 255, b >>> 16 & 255, b >>> 24 & 255);
- };
- jspb.utils.DIGITS = "0123456789abcdef".split("");
- jspb.utils.ZERO_CHAR_CODE_ = 48;
- jspb.utils.A_CHAR_CODE_ = 97;
- jspb.utils.joinUnsignedDecimalString = function (a, b) {
- function c(a, b) {
- a = a ? String(a) : "";
- return b ? "0000000".slice(a.length) + a : a;
- }
- if (2097151 >= b) return "" + jspb.utils.joinUint64(a, b);
- var d = (a >>> 24 | b << 8) >>> 0 & 16777215;
- b = b >> 16 & 65535;
- a = (a & 16777215) + 6777216 * d + 6710656 * b;
- d += 8147497 * b;
- b *= 2;
- 1E7 <= a && (d += Math.floor(a / 1E7), a %= 1E7);
- 1E7 <= d && (b += Math.floor(d / 1E7), d %= 1E7);
- return c(b, 0) + c(d, b) + c(a, 1);
- };
- jspb.utils.joinSignedDecimalString = function (a, b) {
- var c = b & 2147483648;
- c && (a = ~a + 1 >>> 0, b = ~b + (0 == a ? 1 : 0) >>> 0);
- a = jspb.utils.joinUnsignedDecimalString(a, b);
- return c ? "-" + a : a;
- };
- jspb.utils.hash64ToDecimalString = function (a, b) {
- jspb.utils.splitHash64(a);
- a = jspb.utils.split64Low;
- var c = jspb.utils.split64High;
- return b ? jspb.utils.joinSignedDecimalString(a, c) : jspb.utils.joinUnsignedDecimalString(a, c);
- };
- jspb.utils.hash64ArrayToDecimalStrings = function (a, b) {
- for (var c = Array(a.length), d = 0; d < a.length; d++) {
- c[d] = jspb.utils.hash64ToDecimalString(a[d], b);
- }
- return c;
- };
- jspb.utils.decimalStringToHash64 = function (a) {
- function b(a, b) {
- for (var c = 0; 8 > c && (1 !== a || 0 < b); c++) {
- b = a * e[c] + b, e[c] = b & 255, b >>>= 8;
- }
- }
- function c() {
- for (var a = 0; 8 > a; a++) {
- e[a] = ~e[a] & 255;
- }
- }
- jspb.asserts.assert(0 < a.length);
- var d = !1;
- "-" === a[0] && (d = !0, a = a.slice(1));
- for (var e = [0, 0, 0, 0, 0, 0, 0, 0], f = 0; f < a.length; f++) {
- b(10, a.charCodeAt(f) - jspb.utils.ZERO_CHAR_CODE_);
- }
- d && (c(), b(1, 1));
- return goog.crypt.byteArrayToString(e);
- };
- jspb.utils.splitDecimalString = function (a) {
- jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));
- };
- jspb.utils.toHexDigit_ = function (a) {
- return String.fromCharCode(10 > a ? jspb.utils.ZERO_CHAR_CODE_ + a : jspb.utils.A_CHAR_CODE_ - 10 + a);
- };
- jspb.utils.fromHexCharCode_ = function (a) {
- return a >= jspb.utils.A_CHAR_CODE_ ? a - jspb.utils.A_CHAR_CODE_ + 10 : a - jspb.utils.ZERO_CHAR_CODE_;
- };
- jspb.utils.hash64ToHexString = function (a) {
- var b = Array(18);
- b[0] = "0";
- b[1] = "x";
- for (var c = 0; 8 > c; c++) {
- var d = a.charCodeAt(7 - c);
- b[2 * c + 2] = jspb.utils.toHexDigit_(d >> 4);
- b[2 * c + 3] = jspb.utils.toHexDigit_(d & 15);
- }
- return b.join("");
- };
- jspb.utils.hexStringToHash64 = function (a) {
- a = a.toLowerCase();
- jspb.asserts.assert(18 == a.length);
- jspb.asserts.assert("0" == a[0]);
- jspb.asserts.assert("x" == a[1]);
- for (var b = "", c = 0; 8 > c; c++) {
- var d = jspb.utils.fromHexCharCode_(a.charCodeAt(2 * c + 2)),
- e = jspb.utils.fromHexCharCode_(a.charCodeAt(2 * c + 3));
- b = String.fromCharCode(16 * d + e) + b;
- }
- return b;
- };
- jspb.utils.hash64ToNumber = function (a, b) {
- jspb.utils.splitHash64(a);
- a = jspb.utils.split64Low;
- var c = jspb.utils.split64High;
- return b ? jspb.utils.joinInt64(a, c) : jspb.utils.joinUint64(a, c);
- };
- jspb.utils.numberToHash64 = function (a) {
- jspb.utils.splitInt64(a);
- return jspb.utils.joinHash64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.utils.countVarints = function (a, b, c) {
- for (var d = 0, e = b; e < c; e++) {
- d += a[e] >> 7;
- }
- return c - b - d;
- };
- jspb.utils.countVarintFields = function (a, b, c, d) {
- var e = 0;
- d = 8 * d + jspb.BinaryConstants.WireType.VARINT;
- if (128 > d) for (; b < c && a[b++] == d;) {
- for (e++;;) {
- var f = a[b++];
- if (0 == (f & 128)) break;
- }
- } else for (; b < c;) {
- for (f = d; 128 < f;) {
- if (a[b] != (f & 127 | 128)) return e;
- b++;
- f >>= 7;
- }
- if (a[b++] != f) break;
- for (e++; f = a[b++], 0 != (f & 128);) {
- ;
- }
- }
- return e;
- };
- jspb.utils.countFixedFields_ = function (a, b, c, d, e) {
- var f = 0;
- if (128 > d) for (; b < c && a[b++] == d;) {
- f++, b += e;
- } else for (; b < c;) {
- for (var g = d; 128 < g;) {
- if (a[b++] != (g & 127 | 128)) return f;
- g >>= 7;
- }
- if (a[b++] != g) break;
- f++;
- b += e;
- }
- return f;
- };
- jspb.utils.countFixed32Fields = function (a, b, c, d) {
- return jspb.utils.countFixedFields_(a, b, c, 8 * d + jspb.BinaryConstants.WireType.FIXED32, 4);
- };
- jspb.utils.countFixed64Fields = function (a, b, c, d) {
- return jspb.utils.countFixedFields_(a, b, c, 8 * d + jspb.BinaryConstants.WireType.FIXED64, 8);
- };
- jspb.utils.countDelimitedFields = function (a, b, c, d) {
- var e = 0;
- for (d = 8 * d + jspb.BinaryConstants.WireType.DELIMITED; b < c;) {
- for (var f = d; 128 < f;) {
- if (a[b++] != (f & 127 | 128)) return e;
- f >>= 7;
- }
- if (a[b++] != f) break;
- e++;
- for (var g = 0, h = 1; f = a[b++], g += (f & 127) * h, h *= 128, 0 != (f & 128);) {
- ;
- }
- b += g;
- }
- return e;
- };
- jspb.utils.debugBytesToTextFormat = function (a) {
- var b = '"';
- if (a) {
- a = jspb.utils.byteSourceToUint8Array(a);
- for (var c = 0; c < a.length; c++) {
- b += "\\x", 16 > a[c] && (b += "0"), b += a[c].toString(16);
- }
- }
- return b + '"';
- };
- jspb.utils.debugScalarToTextFormat = function (a) {
- return "string" === typeof a ? goog.string.quote(a) : a.toString();
- };
- jspb.utils.stringToByteArray = function (a) {
- for (var b = new Uint8Array(a.length), c = 0; c < a.length; c++) {
- var d = a.charCodeAt(c);
- if (255 < d) throw Error("Conversion error: string contains codepoint outside of byte range");
- b[c] = d;
- }
- return b;
- };
- jspb.utils.byteSourceToUint8Array = function (a) {
- if (a.constructor === Uint8Array) return a;
- if (a.constructor === ArrayBuffer || a.constructor === Array) return new Uint8Array(a);
- if (a.constructor === String) return goog.crypt.base64.decodeStringToUint8Array(a);
- if (a instanceof Uint8Array) return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
- jspb.asserts.fail("Type not convertible to Uint8Array.");
- return new Uint8Array(0);
- };
- jspb.BinaryDecoder = function (a, b, c) {
- this.bytes_ = null;
- this.cursor_ = this.end_ = this.start_ = 0;
- this.error_ = !1;
- a && this.setBlock(a, b, c);
- };
- jspb.BinaryDecoder.instanceCache_ = [];
- jspb.BinaryDecoder.alloc = function (a, b, c) {
- if (jspb.BinaryDecoder.instanceCache_.length) {
- var d = jspb.BinaryDecoder.instanceCache_.pop();
- a && d.setBlock(a, b, c);
- return d;
- }
- return new jspb.BinaryDecoder(a, b, c);
- };
- jspb.BinaryDecoder.prototype.free = function () {
- this.clear();
- 100 > jspb.BinaryDecoder.instanceCache_.length && jspb.BinaryDecoder.instanceCache_.push(this);
- };
- jspb.BinaryDecoder.prototype.clone = function () {
- return jspb.BinaryDecoder.alloc(this.bytes_, this.start_, this.end_ - this.start_);
- };
- jspb.BinaryDecoder.prototype.clear = function () {
- this.bytes_ = null;
- this.cursor_ = this.end_ = this.start_ = 0;
- this.error_ = !1;
- };
- jspb.BinaryDecoder.prototype.getBuffer = function () {
- return this.bytes_;
- };
- jspb.BinaryDecoder.prototype.setBlock = function (a, b, c) {
- this.bytes_ = jspb.utils.byteSourceToUint8Array(a);
- this.start_ = void 0 !== b ? b : 0;
- this.end_ = void 0 !== c ? this.start_ + c : this.bytes_.length;
- this.cursor_ = this.start_;
- };
- jspb.BinaryDecoder.prototype.getEnd = function () {
- return this.end_;
- };
- jspb.BinaryDecoder.prototype.setEnd = function (a) {
- this.end_ = a;
- };
- jspb.BinaryDecoder.prototype.reset = function () {
- this.cursor_ = this.start_;
- };
- jspb.BinaryDecoder.prototype.getCursor = function () {
- return this.cursor_;
- };
- jspb.BinaryDecoder.prototype.setCursor = function (a) {
- this.cursor_ = a;
- };
- jspb.BinaryDecoder.prototype.advance = function (a) {
- this.cursor_ += a;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- };
- jspb.BinaryDecoder.prototype.atEnd = function () {
- return this.cursor_ == this.end_;
- };
- jspb.BinaryDecoder.prototype.pastEnd = function () {
- return this.cursor_ > this.end_;
- };
- jspb.BinaryDecoder.prototype.getError = function () {
- return this.error_ || 0 > this.cursor_ || this.cursor_ > this.end_;
- };
- jspb.BinaryDecoder.prototype.readSplitVarint64 = function (a) {
- for (var b = 128, c = 0, d = 0, e = 0; 4 > e && 128 <= b; e++) {
- b = this.bytes_[this.cursor_++], c |= (b & 127) << 7 * e;
- }
- 128 <= b && (b = this.bytes_[this.cursor_++], c |= (b & 127) << 28, d |= (b & 127) >> 4);
- if (128 <= b) for (e = 0; 5 > e && 128 <= b; e++) {
- b = this.bytes_[this.cursor_++], d |= (b & 127) << 7 * e + 3;
- }
- if (128 > b) return a(c >>> 0, d >>> 0);
- jspb.asserts.fail("Failed to read varint, encoding is invalid.");
- this.error_ = !0;
- };
- jspb.BinaryDecoder.prototype.readSplitZigzagVarint64 = function (a) {
- return this.readSplitVarint64(function (b, c) {
- return jspb.utils.fromZigzag64(b, c, a);
- });
- };
- jspb.BinaryDecoder.prototype.readSplitFixed64 = function (a) {
- var b = this.bytes_,
- c = this.cursor_;
- this.cursor_ += 8;
- for (var d = 0, e = 0, f = c + 7; f >= c; f--) {
- d = d << 8 | b[f], e = e << 8 | b[f + 4];
- }
- return a(d, e);
- };
- jspb.BinaryDecoder.prototype.skipVarint = function () {
- for (; this.bytes_[this.cursor_] & 128;) {
- this.cursor_++;
- }
- this.cursor_++;
- };
- jspb.BinaryDecoder.prototype.unskipVarint = function (a) {
- for (; 128 < a;) {
- this.cursor_--, a >>>= 7;
- }
- this.cursor_--;
- };
- jspb.BinaryDecoder.prototype.readUnsignedVarint32 = function () {
- var a = this.bytes_;
- var b = a[this.cursor_ + 0];
- var c = b & 127;
- if (128 > b) return this.cursor_ += 1, jspb.asserts.assert(this.cursor_ <= this.end_), c;
- b = a[this.cursor_ + 1];
- c |= (b & 127) << 7;
- if (128 > b) return this.cursor_ += 2, jspb.asserts.assert(this.cursor_ <= this.end_), c;
- b = a[this.cursor_ + 2];
- c |= (b & 127) << 14;
- if (128 > b) return this.cursor_ += 3, jspb.asserts.assert(this.cursor_ <= this.end_), c;
- b = a[this.cursor_ + 3];
- c |= (b & 127) << 21;
- if (128 > b) return this.cursor_ += 4, jspb.asserts.assert(this.cursor_ <= this.end_), c;
- b = a[this.cursor_ + 4];
- c |= (b & 15) << 28;
- if (128 > b) return this.cursor_ += 5, jspb.asserts.assert(this.cursor_ <= this.end_), c >>> 0;
- this.cursor_ += 5;
- 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && jspb.asserts.assert(!1);
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return c;
- };
- jspb.BinaryDecoder.prototype.readSignedVarint32 = function () {
- return ~~this.readUnsignedVarint32();
- };
- jspb.BinaryDecoder.prototype.readUnsignedVarint32String = function () {
- return this.readUnsignedVarint32().toString();
- };
- jspb.BinaryDecoder.prototype.readSignedVarint32String = function () {
- return this.readSignedVarint32().toString();
- };
- jspb.BinaryDecoder.prototype.readZigzagVarint32 = function () {
- var a = this.readUnsignedVarint32();
- return a >>> 1 ^ -(a & 1);
- };
- jspb.BinaryDecoder.prototype.readUnsignedVarint64 = function () {
- return this.readSplitVarint64(jspb.utils.joinUint64);
- };
- jspb.BinaryDecoder.prototype.readUnsignedVarint64String = function () {
- return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString);
- };
- jspb.BinaryDecoder.prototype.readSignedVarint64 = function () {
- return this.readSplitVarint64(jspb.utils.joinInt64);
- };
- jspb.BinaryDecoder.prototype.readSignedVarint64String = function () {
- return this.readSplitVarint64(jspb.utils.joinSignedDecimalString);
- };
- jspb.BinaryDecoder.prototype.readZigzagVarint64 = function () {
- return this.readSplitVarint64(jspb.utils.joinZigzag64);
- };
- jspb.BinaryDecoder.prototype.readZigzagVarintHash64 = function () {
- return this.readSplitZigzagVarint64(jspb.utils.joinHash64);
- };
- jspb.BinaryDecoder.prototype.readZigzagVarint64String = function () {
- return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString);
- };
- jspb.BinaryDecoder.prototype.readUint8 = function () {
- var a = this.bytes_[this.cursor_ + 0];
- this.cursor_ += 1;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return a;
- };
- jspb.BinaryDecoder.prototype.readUint16 = function () {
- var a = this.bytes_[this.cursor_ + 0],
- b = this.bytes_[this.cursor_ + 1];
- this.cursor_ += 2;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return a << 0 | b << 8;
- };
- jspb.BinaryDecoder.prototype.readUint32 = function () {
- var a = this.bytes_[this.cursor_ + 0],
- b = this.bytes_[this.cursor_ + 1],
- c = this.bytes_[this.cursor_ + 2],
- d = this.bytes_[this.cursor_ + 3];
- this.cursor_ += 4;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return (a << 0 | b << 8 | c << 16 | d << 24) >>> 0;
- };
- jspb.BinaryDecoder.prototype.readUint64 = function () {
- var a = this.readUint32(),
- b = this.readUint32();
- return jspb.utils.joinUint64(a, b);
- };
- jspb.BinaryDecoder.prototype.readUint64String = function () {
- var a = this.readUint32(),
- b = this.readUint32();
- return jspb.utils.joinUnsignedDecimalString(a, b);
- };
- jspb.BinaryDecoder.prototype.readInt8 = function () {
- var a = this.bytes_[this.cursor_ + 0];
- this.cursor_ += 1;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return a << 24 >> 24;
- };
- jspb.BinaryDecoder.prototype.readInt16 = function () {
- var a = this.bytes_[this.cursor_ + 0],
- b = this.bytes_[this.cursor_ + 1];
- this.cursor_ += 2;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return (a << 0 | b << 8) << 16 >> 16;
- };
- jspb.BinaryDecoder.prototype.readInt32 = function () {
- var a = this.bytes_[this.cursor_ + 0],
- b = this.bytes_[this.cursor_ + 1],
- c = this.bytes_[this.cursor_ + 2],
- d = this.bytes_[this.cursor_ + 3];
- this.cursor_ += 4;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return a << 0 | b << 8 | c << 16 | d << 24;
- };
- jspb.BinaryDecoder.prototype.readInt64 = function () {
- var a = this.readUint32(),
- b = this.readUint32();
- return jspb.utils.joinInt64(a, b);
- };
- jspb.BinaryDecoder.prototype.readInt64String = function () {
- var a = this.readUint32(),
- b = this.readUint32();
- return jspb.utils.joinSignedDecimalString(a, b);
- };
- jspb.BinaryDecoder.prototype.readFloat = function () {
- var a = this.readUint32();
- return jspb.utils.joinFloat32(a, 0);
- };
- jspb.BinaryDecoder.prototype.readDouble = function () {
- var a = this.readUint32(),
- b = this.readUint32();
- return jspb.utils.joinFloat64(a, b);
- };
- jspb.BinaryDecoder.prototype.readBool = function () {
- return !!this.bytes_[this.cursor_++];
- };
- jspb.BinaryDecoder.prototype.readEnum = function () {
- return this.readSignedVarint32();
- };
- jspb.BinaryDecoder.prototype.readString = function (a) {
- var b = this.bytes_,
- c = this.cursor_;
- a = c + a;
- for (var d = [], e = ""; c < a;) {
- var f = b[c++];
- if (128 > f) d.push(f);else if (192 > f) continue;else if (224 > f) {
- var g = b[c++];
- d.push((f & 31) << 6 | g & 63);
- } else if (240 > f) {
- g = b[c++];
- var h = b[c++];
- d.push((f & 15) << 12 | (g & 63) << 6 | h & 63);
- } else if (248 > f) {
- g = b[c++];
- h = b[c++];
- var k = b[c++];
- f = (f & 7) << 18 | (g & 63) << 12 | (h & 63) << 6 | k & 63;
- f -= 65536;
- d.push((f >> 10 & 1023) + 55296, (f & 1023) + 56320);
- }
- 8192 <= d.length && (e += String.fromCharCode.apply(null, d), d.length = 0);
- }
- e += goog.crypt.byteArrayToString(d);
- this.cursor_ = c;
- return e;
- };
- jspb.BinaryDecoder.prototype.readStringWithLength = function () {
- var a = this.readUnsignedVarint32();
- return this.readString(a);
- };
- jspb.BinaryDecoder.prototype.readBytes = function (a) {
- if (0 > a || this.cursor_ + a > this.bytes_.length) return this.error_ = !0, jspb.asserts.fail("Invalid byte length!"), new Uint8Array(0);
- var b = this.bytes_.subarray(this.cursor_, this.cursor_ + a);
- this.cursor_ += a;
- jspb.asserts.assert(this.cursor_ <= this.end_);
- return b;
- };
- jspb.BinaryDecoder.prototype.readVarintHash64 = function () {
- return this.readSplitVarint64(jspb.utils.joinHash64);
- };
- jspb.BinaryDecoder.prototype.readFixedHash64 = function () {
- var a = this.bytes_,
- b = this.cursor_,
- c = a[b + 0],
- d = a[b + 1],
- e = a[b + 2],
- f = a[b + 3],
- g = a[b + 4],
- h = a[b + 5],
- k = a[b + 6];
- a = a[b + 7];
- this.cursor_ += 8;
- return String.fromCharCode(c, d, e, f, g, h, k, a);
- };
- jspb.BinaryReader = function (a, b, c) {
- this.decoder_ = jspb.BinaryDecoder.alloc(a, b, c);
- this.fieldCursor_ = this.decoder_.getCursor();
- this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
- this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
- this.error_ = !1;
- this.readCallbacks_ = null;
- };
- jspb.BinaryReader.instanceCache_ = [];
- jspb.BinaryReader.alloc = function (a, b, c) {
- if (jspb.BinaryReader.instanceCache_.length) {
- var d = jspb.BinaryReader.instanceCache_.pop();
- a && d.decoder_.setBlock(a, b, c);
- return d;
- }
- return new jspb.BinaryReader(a, b, c);
- };
- jspb.BinaryReader.prototype.alloc = jspb.BinaryReader.alloc;
- jspb.BinaryReader.prototype.free = function () {
- this.decoder_.clear();
- this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
- this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
- this.error_ = !1;
- this.readCallbacks_ = null;
- 100 > jspb.BinaryReader.instanceCache_.length && jspb.BinaryReader.instanceCache_.push(this);
- };
- jspb.BinaryReader.prototype.getFieldCursor = function () {
- return this.fieldCursor_;
- };
- jspb.BinaryReader.prototype.getCursor = function () {
- return this.decoder_.getCursor();
- };
- jspb.BinaryReader.prototype.getBuffer = function () {
- return this.decoder_.getBuffer();
- };
- jspb.BinaryReader.prototype.getFieldNumber = function () {
- return this.nextField_;
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "getFieldNumber", jspb.BinaryReader.prototype.getFieldNumber);
- jspb.BinaryReader.prototype.getWireType = function () {
- return this.nextWireType_;
- };
- jspb.BinaryReader.prototype.isDelimited = function () {
- return this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED;
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "isDelimited", jspb.BinaryReader.prototype.isDelimited);
- jspb.BinaryReader.prototype.isEndGroup = function () {
- return this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP;
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "isEndGroup", jspb.BinaryReader.prototype.isEndGroup);
- jspb.BinaryReader.prototype.getError = function () {
- return this.error_ || this.decoder_.getError();
- };
- jspb.BinaryReader.prototype.setBlock = function (a, b, c) {
- this.decoder_.setBlock(a, b, c);
- this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
- this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
- };
- jspb.BinaryReader.prototype.reset = function () {
- this.decoder_.reset();
- this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
- this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
- };
- jspb.BinaryReader.prototype.advance = function (a) {
- this.decoder_.advance(a);
- };
- jspb.BinaryReader.prototype.nextField = function () {
- if (this.decoder_.atEnd()) return !1;
- if (this.getError()) return jspb.asserts.fail("Decoder hit an error"), !1;
- this.fieldCursor_ = this.decoder_.getCursor();
- var a = this.decoder_.readUnsignedVarint32(),
- b = a >>> 3;
- a &= 7;
- if (a != jspb.BinaryConstants.WireType.VARINT && a != jspb.BinaryConstants.WireType.FIXED32 && a != jspb.BinaryConstants.WireType.FIXED64 && a != jspb.BinaryConstants.WireType.DELIMITED && a != jspb.BinaryConstants.WireType.START_GROUP && a != jspb.BinaryConstants.WireType.END_GROUP) return jspb.asserts.fail("Invalid wire type: %s (at position %s)", a, this.fieldCursor_), this.error_ = !0, !1;
- this.nextField_ = b;
- this.nextWireType_ = a;
- return !0;
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "nextField", jspb.BinaryReader.prototype.nextField);
- jspb.BinaryReader.prototype.unskipHeader = function () {
- this.decoder_.unskipVarint(this.nextField_ << 3 | this.nextWireType_);
- };
- jspb.BinaryReader.prototype.skipMatchingFields = function () {
- var a = this.nextField_;
- for (this.unskipHeader(); this.nextField() && this.getFieldNumber() == a;) {
- this.skipField();
- }
- this.decoder_.atEnd() || this.unskipHeader();
- };
- jspb.BinaryReader.prototype.skipVarintField = function () {
- this.nextWireType_ != jspb.BinaryConstants.WireType.VARINT ? (jspb.asserts.fail("Invalid wire type for skipVarintField"), this.skipField()) : this.decoder_.skipVarint();
- };
- jspb.BinaryReader.prototype.skipDelimitedField = function () {
- if (this.nextWireType_ != jspb.BinaryConstants.WireType.DELIMITED) jspb.asserts.fail("Invalid wire type for skipDelimitedField"), this.skipField();else {
- var a = this.decoder_.readUnsignedVarint32();
- this.decoder_.advance(a);
- }
- };
- jspb.BinaryReader.prototype.skipFixed32Field = function () {
- this.nextWireType_ != jspb.BinaryConstants.WireType.FIXED32 ? (jspb.asserts.fail("Invalid wire type for skipFixed32Field"), this.skipField()) : this.decoder_.advance(4);
- };
- jspb.BinaryReader.prototype.skipFixed64Field = function () {
- this.nextWireType_ != jspb.BinaryConstants.WireType.FIXED64 ? (jspb.asserts.fail("Invalid wire type for skipFixed64Field"), this.skipField()) : this.decoder_.advance(8);
- };
- jspb.BinaryReader.prototype.skipGroup = function () {
- var a = this.nextField_;
- do {
- if (!this.nextField()) {
- jspb.asserts.fail("Unmatched start-group tag: stream EOF");
- this.error_ = !0;
- break;
- }
- if (this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP) {
- this.nextField_ != a && (jspb.asserts.fail("Unmatched end-group tag"), this.error_ = !0);
- break;
- }
- this.skipField();
- } while (1);
- };
- jspb.BinaryReader.prototype.skipField = function () {
- switch (this.nextWireType_) {
- case jspb.BinaryConstants.WireType.VARINT:
- this.skipVarintField();
- break;
- case jspb.BinaryConstants.WireType.FIXED64:
- this.skipFixed64Field();
- break;
- case jspb.BinaryConstants.WireType.DELIMITED:
- this.skipDelimitedField();
- break;
- case jspb.BinaryConstants.WireType.FIXED32:
- this.skipFixed32Field();
- break;
- case jspb.BinaryConstants.WireType.START_GROUP:
- this.skipGroup();
- break;
- default:
- jspb.asserts.fail("Invalid wire encoding for field.");
- }
- };
- jspb.BinaryReader.prototype.registerReadCallback = function (a, b) {
- null === this.readCallbacks_ && (this.readCallbacks_ = {});
- jspb.asserts.assert(!this.readCallbacks_[a]);
- this.readCallbacks_[a] = b;
- };
- jspb.BinaryReader.prototype.runReadCallback = function (a) {
- jspb.asserts.assert(null !== this.readCallbacks_);
- a = this.readCallbacks_[a];
- jspb.asserts.assert(a);
- return a(this);
- };
- jspb.BinaryReader.prototype.readAny = function (a) {
- this.nextWireType_ = jspb.BinaryConstants.FieldTypeToWireType(a);
- var b = jspb.BinaryConstants.FieldType;
- switch (a) {
- case b.DOUBLE:
- return this.readDouble();
- case b.FLOAT:
- return this.readFloat();
- case b.INT64:
- return this.readInt64();
- case b.UINT64:
- return this.readUint64();
- case b.INT32:
- return this.readInt32();
- case b.FIXED64:
- return this.readFixed64();
- case b.FIXED32:
- return this.readFixed32();
- case b.BOOL:
- return this.readBool();
- case b.STRING:
- return this.readString();
- case b.GROUP:
- jspb.asserts.fail("Group field type not supported in readAny()");
- case b.MESSAGE:
- jspb.asserts.fail("Message field type not supported in readAny()");
- case b.BYTES:
- return this.readBytes();
- case b.UINT32:
- return this.readUint32();
- case b.ENUM:
- return this.readEnum();
- case b.SFIXED32:
- return this.readSfixed32();
- case b.SFIXED64:
- return this.readSfixed64();
- case b.SINT32:
- return this.readSint32();
- case b.SINT64:
- return this.readSint64();
- case b.FHASH64:
- return this.readFixedHash64();
- case b.VHASH64:
- return this.readVarintHash64();
- default:
- jspb.asserts.fail("Invalid field type in readAny()");
- }
- return 0;
- };
- jspb.BinaryReader.prototype.readMessage = function (a, b) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
- var c = this.decoder_.getEnd(),
- d = this.decoder_.readUnsignedVarint32();
- d = this.decoder_.getCursor() + d;
- this.decoder_.setEnd(d);
- b(a, this);
- this.decoder_.setCursor(d);
- this.decoder_.setEnd(c);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readMessage", jspb.BinaryReader.prototype.readMessage);
- jspb.BinaryReader.prototype.readGroup = function (a, b, c) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.START_GROUP);
- jspb.asserts.assert(this.nextField_ == a);
- c(b, this);
- this.error_ || this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP || (jspb.asserts.fail("Group submessage did not end with an END_GROUP tag"), this.error_ = !0);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readGroup", jspb.BinaryReader.prototype.readGroup);
- jspb.BinaryReader.prototype.getFieldDecoder = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
- var a = this.decoder_.readUnsignedVarint32(),
- b = this.decoder_.getCursor(),
- c = b + a;
- a = jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(), b, a);
- this.decoder_.setCursor(c);
- return a;
- };
- jspb.BinaryReader.prototype.readInt32 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSignedVarint32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readInt32", jspb.BinaryReader.prototype.readInt32);
- jspb.BinaryReader.prototype.readInt32String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSignedVarint32String();
- };
- jspb.BinaryReader.prototype.readInt64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSignedVarint64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readInt64", jspb.BinaryReader.prototype.readInt64);
- jspb.BinaryReader.prototype.readInt64String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSignedVarint64String();
- };
- jspb.BinaryReader.prototype.readUint32 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readUnsignedVarint32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readUint32", jspb.BinaryReader.prototype.readUint32);
- jspb.BinaryReader.prototype.readUint32String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readUnsignedVarint32String();
- };
- jspb.BinaryReader.prototype.readUint64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readUnsignedVarint64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readUint64", jspb.BinaryReader.prototype.readUint64);
- jspb.BinaryReader.prototype.readUint64String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readUnsignedVarint64String();
- };
- jspb.BinaryReader.prototype.readSint32 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readZigzagVarint32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readSint32", jspb.BinaryReader.prototype.readSint32);
- jspb.BinaryReader.prototype.readSint64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readZigzagVarint64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readSint64", jspb.BinaryReader.prototype.readSint64);
- jspb.BinaryReader.prototype.readSint64String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readZigzagVarint64String();
- };
- jspb.BinaryReader.prototype.readFixed32 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
- return this.decoder_.readUint32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readFixed32", jspb.BinaryReader.prototype.readFixed32);
- jspb.BinaryReader.prototype.readFixed64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readUint64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readFixed64", jspb.BinaryReader.prototype.readFixed64);
- jspb.BinaryReader.prototype.readFixed64String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readUint64String();
- };
- jspb.BinaryReader.prototype.readSfixed32 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
- return this.decoder_.readInt32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readSfixed32", jspb.BinaryReader.prototype.readSfixed32);
- jspb.BinaryReader.prototype.readSfixed32String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
- return this.decoder_.readInt32().toString();
- };
- jspb.BinaryReader.prototype.readSfixed64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readInt64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readSfixed64", jspb.BinaryReader.prototype.readSfixed64);
- jspb.BinaryReader.prototype.readSfixed64String = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readInt64String();
- };
- jspb.BinaryReader.prototype.readFloat = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
- return this.decoder_.readFloat();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readFloat", jspb.BinaryReader.prototype.readFloat);
- jspb.BinaryReader.prototype.readDouble = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readDouble();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readDouble", jspb.BinaryReader.prototype.readDouble);
- jspb.BinaryReader.prototype.readBool = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return !!this.decoder_.readUnsignedVarint32();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readBool", jspb.BinaryReader.prototype.readBool);
- jspb.BinaryReader.prototype.readEnum = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSignedVarint64();
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readEnum", jspb.BinaryReader.prototype.readEnum);
- jspb.BinaryReader.prototype.readString = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
- var a = this.decoder_.readUnsignedVarint32();
- return this.decoder_.readString(a);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readString", jspb.BinaryReader.prototype.readString);
- jspb.BinaryReader.prototype.readBytes = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
- var a = this.decoder_.readUnsignedVarint32();
- return this.decoder_.readBytes(a);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readBytes", jspb.BinaryReader.prototype.readBytes);
- jspb.BinaryReader.prototype.readVarintHash64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readVarintHash64();
- };
- jspb.BinaryReader.prototype.readSintHash64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readZigzagVarintHash64();
- };
- jspb.BinaryReader.prototype.readSplitVarint64 = function (a) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSplitVarint64(a);
- };
- jspb.BinaryReader.prototype.readSplitZigzagVarint64 = function (a) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
- return this.decoder_.readSplitVarint64(function (b, c) {
- return jspb.utils.fromZigzag64(b, c, a);
- });
- };
- jspb.BinaryReader.prototype.readFixedHash64 = function () {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readFixedHash64();
- };
- jspb.BinaryReader.prototype.readSplitFixed64 = function (a) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
- return this.decoder_.readSplitFixed64(a);
- };
- jspb.BinaryReader.prototype.readPackedField_ = function (a) {
- jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
- var b = this.decoder_.readUnsignedVarint32();
- b = this.decoder_.getCursor() + b;
- for (var c = []; this.decoder_.getCursor() < b;) {
- c.push(a.call(this.decoder_));
- }
- return c;
- };
- jspb.BinaryReader.prototype.readPackedInt32 = function () {
- return this.readPackedField_(this.decoder_.readSignedVarint32);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedInt32", jspb.BinaryReader.prototype.readPackedInt32);
- jspb.BinaryReader.prototype.readPackedInt32String = function () {
- return this.readPackedField_(this.decoder_.readSignedVarint32String);
- };
- jspb.BinaryReader.prototype.readPackedInt64 = function () {
- return this.readPackedField_(this.decoder_.readSignedVarint64);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedInt64", jspb.BinaryReader.prototype.readPackedInt64);
- jspb.BinaryReader.prototype.readPackedInt64String = function () {
- return this.readPackedField_(this.decoder_.readSignedVarint64String);
- };
- jspb.BinaryReader.prototype.readPackedUint32 = function () {
- return this.readPackedField_(this.decoder_.readUnsignedVarint32);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedUint32", jspb.BinaryReader.prototype.readPackedUint32);
- jspb.BinaryReader.prototype.readPackedUint32String = function () {
- return this.readPackedField_(this.decoder_.readUnsignedVarint32String);
- };
- jspb.BinaryReader.prototype.readPackedUint64 = function () {
- return this.readPackedField_(this.decoder_.readUnsignedVarint64);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedUint64", jspb.BinaryReader.prototype.readPackedUint64);
- jspb.BinaryReader.prototype.readPackedUint64String = function () {
- return this.readPackedField_(this.decoder_.readUnsignedVarint64String);
- };
- jspb.BinaryReader.prototype.readPackedSint32 = function () {
- return this.readPackedField_(this.decoder_.readZigzagVarint32);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSint32", jspb.BinaryReader.prototype.readPackedSint32);
- jspb.BinaryReader.prototype.readPackedSint64 = function () {
- return this.readPackedField_(this.decoder_.readZigzagVarint64);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSint64", jspb.BinaryReader.prototype.readPackedSint64);
- jspb.BinaryReader.prototype.readPackedSint64String = function () {
- return this.readPackedField_(this.decoder_.readZigzagVarint64String);
- };
- jspb.BinaryReader.prototype.readPackedFixed32 = function () {
- return this.readPackedField_(this.decoder_.readUint32);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFixed32", jspb.BinaryReader.prototype.readPackedFixed32);
- jspb.BinaryReader.prototype.readPackedFixed64 = function () {
- return this.readPackedField_(this.decoder_.readUint64);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFixed64", jspb.BinaryReader.prototype.readPackedFixed64);
- jspb.BinaryReader.prototype.readPackedFixed64String = function () {
- return this.readPackedField_(this.decoder_.readUint64String);
- };
- jspb.BinaryReader.prototype.readPackedSfixed32 = function () {
- return this.readPackedField_(this.decoder_.readInt32);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSfixed32", jspb.BinaryReader.prototype.readPackedSfixed32);
- jspb.BinaryReader.prototype.readPackedSfixed64 = function () {
- return this.readPackedField_(this.decoder_.readInt64);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSfixed64", jspb.BinaryReader.prototype.readPackedSfixed64);
- jspb.BinaryReader.prototype.readPackedSfixed64String = function () {
- return this.readPackedField_(this.decoder_.readInt64String);
- };
- jspb.BinaryReader.prototype.readPackedFloat = function () {
- return this.readPackedField_(this.decoder_.readFloat);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFloat", jspb.BinaryReader.prototype.readPackedFloat);
- jspb.BinaryReader.prototype.readPackedDouble = function () {
- return this.readPackedField_(this.decoder_.readDouble);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedDouble", jspb.BinaryReader.prototype.readPackedDouble);
- jspb.BinaryReader.prototype.readPackedBool = function () {
- return this.readPackedField_(this.decoder_.readBool);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedBool", jspb.BinaryReader.prototype.readPackedBool);
- jspb.BinaryReader.prototype.readPackedEnum = function () {
- return this.readPackedField_(this.decoder_.readEnum);
- };
- goog.exportProperty(jspb.BinaryReader.prototype, "readPackedEnum", jspb.BinaryReader.prototype.readPackedEnum);
- jspb.BinaryReader.prototype.readPackedVarintHash64 = function () {
- return this.readPackedField_(this.decoder_.readVarintHash64);
- };
- jspb.BinaryReader.prototype.readPackedFixedHash64 = function () {
- return this.readPackedField_(this.decoder_.readFixedHash64);
- };
- jspb.BinaryEncoder = function () {
- this.buffer_ = [];
- };
- jspb.BinaryEncoder.prototype.length = function () {
- return this.buffer_.length;
- };
- jspb.BinaryEncoder.prototype.end = function () {
- var a = this.buffer_;
- this.buffer_ = [];
- return a;
- };
- jspb.BinaryEncoder.prototype.writeSplitVarint64 = function (a, b) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(b == Math.floor(b));
- jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
- for (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32); 0 < b || 127 < a;) {
- this.buffer_.push(a & 127 | 128), a = (a >>> 7 | b << 25) >>> 0, b >>>= 7;
- }
- this.buffer_.push(a);
- };
- jspb.BinaryEncoder.prototype.writeSplitFixed64 = function (a, b) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(b == Math.floor(b));
- jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
- jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32);
- this.writeUint32(a);
- this.writeUint32(b);
- };
- jspb.BinaryEncoder.prototype.writeUnsignedVarint32 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- for (jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32); 127 < a;) {
- this.buffer_.push(a & 127 | 128), a >>>= 7;
- }
- this.buffer_.push(a);
- };
- jspb.BinaryEncoder.prototype.writeSignedVarint32 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
- if (0 <= a) this.writeUnsignedVarint32(a);else {
- for (var b = 0; 9 > b; b++) {
- this.buffer_.push(a & 127 | 128), a >>= 7;
- }
- this.buffer_.push(1);
- }
- };
- jspb.BinaryEncoder.prototype.writeUnsignedVarint64 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_64);
- jspb.utils.splitInt64(a);
- this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeSignedVarint64 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
- jspb.utils.splitInt64(a);
- this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeZigzagVarint32 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
- this.writeUnsignedVarint32((a << 1 ^ a >> 31) >>> 0);
- };
- jspb.BinaryEncoder.prototype.writeZigzagVarint64 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
- jspb.utils.splitZigzag64(a);
- this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeZigzagVarint64String = function (a) {
- this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(a));
- };
- jspb.BinaryEncoder.prototype.writeZigzagVarintHash64 = function (a) {
- var b = this;
- jspb.utils.splitHash64(a);
- jspb.utils.toZigzag64(jspb.utils.split64Low, jspb.utils.split64High, function (a, d) {
- b.writeSplitVarint64(a >>> 0, d >>> 0);
- });
- };
- jspb.BinaryEncoder.prototype.writeUint8 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(0 <= a && 256 > a);
- this.buffer_.push(a >>> 0 & 255);
- };
- jspb.BinaryEncoder.prototype.writeUint16 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(0 <= a && 65536 > a);
- this.buffer_.push(a >>> 0 & 255);
- this.buffer_.push(a >>> 8 & 255);
- };
- jspb.BinaryEncoder.prototype.writeUint32 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
- this.buffer_.push(a >>> 0 & 255);
- this.buffer_.push(a >>> 8 & 255);
- this.buffer_.push(a >>> 16 & 255);
- this.buffer_.push(a >>> 24 & 255);
- };
- jspb.BinaryEncoder.prototype.writeUint64 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_64);
- jspb.utils.splitUint64(a);
- this.writeUint32(jspb.utils.split64Low);
- this.writeUint32(jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeInt8 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(-128 <= a && 128 > a);
- this.buffer_.push(a >>> 0 & 255);
- };
- jspb.BinaryEncoder.prototype.writeInt16 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(-32768 <= a && 32768 > a);
- this.buffer_.push(a >>> 0 & 255);
- this.buffer_.push(a >>> 8 & 255);
- };
- jspb.BinaryEncoder.prototype.writeInt32 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
- this.buffer_.push(a >>> 0 & 255);
- this.buffer_.push(a >>> 8 & 255);
- this.buffer_.push(a >>> 16 & 255);
- this.buffer_.push(a >>> 24 & 255);
- };
- jspb.BinaryEncoder.prototype.writeInt64 = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
- jspb.utils.splitInt64(a);
- this.writeSplitFixed64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeInt64String = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(+a >= -jspb.BinaryConstants.TWO_TO_63 && +a < jspb.BinaryConstants.TWO_TO_63);
- jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));
- this.writeSplitFixed64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeFloat = function (a) {
- jspb.asserts.assert(Infinity === a || -Infinity === a || isNaN(a) || a >= -jspb.BinaryConstants.FLOAT32_MAX && a <= jspb.BinaryConstants.FLOAT32_MAX);
- jspb.utils.splitFloat32(a);
- this.writeUint32(jspb.utils.split64Low);
- };
- jspb.BinaryEncoder.prototype.writeDouble = function (a) {
- jspb.asserts.assert(Infinity === a || -Infinity === a || isNaN(a) || a >= -jspb.BinaryConstants.FLOAT64_MAX && a <= jspb.BinaryConstants.FLOAT64_MAX);
- jspb.utils.splitFloat64(a);
- this.writeUint32(jspb.utils.split64Low);
- this.writeUint32(jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeBool = function (a) {
- jspb.asserts.assert("boolean" === typeof a || "number" === typeof a);
- this.buffer_.push(a ? 1 : 0);
- };
- jspb.BinaryEncoder.prototype.writeEnum = function (a) {
- jspb.asserts.assert(a == Math.floor(a));
- jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
- this.writeSignedVarint32(a);
- };
- jspb.BinaryEncoder.prototype.writeBytes = function (a) {
- this.buffer_.push.apply(this.buffer_, a);
- };
- jspb.BinaryEncoder.prototype.writeVarintHash64 = function (a) {
- jspb.utils.splitHash64(a);
- this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeFixedHash64 = function (a) {
- jspb.utils.splitHash64(a);
- this.writeUint32(jspb.utils.split64Low);
- this.writeUint32(jspb.utils.split64High);
- };
- jspb.BinaryEncoder.prototype.writeString = function (a) {
- var b = this.buffer_.length;
- jspb.asserts.assertString(a);
- for (var c = 0; c < a.length; c++) {
- var d = a.charCodeAt(c);
- if (128 > d) this.buffer_.push(d);else if (2048 > d) this.buffer_.push(d >> 6 | 192), this.buffer_.push(d & 63 | 128);else if (65536 > d) if (55296 <= d && 56319 >= d && c + 1 < a.length) {
- var e = a.charCodeAt(c + 1);
- 56320 <= e && 57343 >= e && (d = 1024 * (d - 55296) + e - 56320 + 65536, this.buffer_.push(d >> 18 | 240), this.buffer_.push(d >> 12 & 63 | 128), this.buffer_.push(d >> 6 & 63 | 128), this.buffer_.push(d & 63 | 128), c++);
- } else this.buffer_.push(d >> 12 | 224), this.buffer_.push(d >> 6 & 63 | 128), this.buffer_.push(d & 63 | 128);
- }
- return this.buffer_.length - b;
- };
- jspb.arith = {};
- jspb.arith.UInt64 = function (a, b) {
- this.lo = a;
- this.hi = b;
- };
- jspb.arith.UInt64.prototype.cmp = function (a) {
- return this.hi < a.hi || this.hi == a.hi && this.lo < a.lo ? -1 : this.hi == a.hi && this.lo == a.lo ? 0 : 1;
- };
- jspb.arith.UInt64.prototype.rightShift = function () {
- return new jspb.arith.UInt64((this.lo >>> 1 | (this.hi & 1) << 31) >>> 0, this.hi >>> 1 >>> 0);
- };
- jspb.arith.UInt64.prototype.leftShift = function () {
- return new jspb.arith.UInt64(this.lo << 1 >>> 0, (this.hi << 1 | this.lo >>> 31) >>> 0);
- };
- jspb.arith.UInt64.prototype.msb = function () {
- return !!(this.hi & 2147483648);
- };
- jspb.arith.UInt64.prototype.lsb = function () {
- return !!(this.lo & 1);
- };
- jspb.arith.UInt64.prototype.zero = function () {
- return 0 == this.lo && 0 == this.hi;
- };
- jspb.arith.UInt64.prototype.add = function (a) {
- return new jspb.arith.UInt64((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
- };
- jspb.arith.UInt64.prototype.sub = function (a) {
- return new jspb.arith.UInt64((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
- };
- jspb.arith.UInt64.mul32x32 = function (a, b) {
- var c = a & 65535;
- a >>>= 16;
- var d = b & 65535,
- e = b >>> 16;
- b = c * d + 65536 * (c * e & 65535) + 65536 * (a * d & 65535);
- for (c = a * e + (c * e >>> 16) + (a * d >>> 16); 4294967296 <= b;) {
- b -= 4294967296, c += 1;
- }
- return new jspb.arith.UInt64(b >>> 0, c >>> 0);
- };
- jspb.arith.UInt64.prototype.mul = function (a) {
- var b = jspb.arith.UInt64.mul32x32(this.lo, a);
- a = jspb.arith.UInt64.mul32x32(this.hi, a);
- a.hi = a.lo;
- a.lo = 0;
- return b.add(a);
- };
- jspb.arith.UInt64.prototype.div = function (a) {
- if (0 == a) return [];
- var b = new jspb.arith.UInt64(0, 0),
- c = new jspb.arith.UInt64(this.lo, this.hi);
- a = new jspb.arith.UInt64(a, 0);
- for (var d = new jspb.arith.UInt64(1, 0); !a.msb();) {
- a = a.leftShift(), d = d.leftShift();
- }
- for (; !d.zero();) {
- 0 >= a.cmp(c) && (b = b.add(d), c = c.sub(a)), a = a.rightShift(), d = d.rightShift();
- }
- return [b, c];
- };
- jspb.arith.UInt64.prototype.toString = function () {
- for (var a = "", b = this; !b.zero();) {
- b = b.div(10);
- var c = b[0];
- a = b[1].lo + a;
- b = c;
- }
- "" == a && (a = "0");
- return a;
- };
- jspb.arith.UInt64.fromString = function (a) {
- for (var b = new jspb.arith.UInt64(0, 0), c = new jspb.arith.UInt64(0, 0), d = 0; d < a.length; d++) {
- if ("0" > a[d] || "9" < a[d]) return null;
- var e = parseInt(a[d], 10);
- c.lo = e;
- b = b.mul(10).add(c);
- }
- return b;
- };
- jspb.arith.UInt64.prototype.clone = function () {
- return new jspb.arith.UInt64(this.lo, this.hi);
- };
- jspb.arith.Int64 = function (a, b) {
- this.lo = a;
- this.hi = b;
- };
- jspb.arith.Int64.prototype.add = function (a) {
- return new jspb.arith.Int64((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
- };
- jspb.arith.Int64.prototype.sub = function (a) {
- return new jspb.arith.Int64((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
- };
- jspb.arith.Int64.prototype.clone = function () {
- return new jspb.arith.Int64(this.lo, this.hi);
- };
- jspb.arith.Int64.prototype.toString = function () {
- var a = 0 != (this.hi & 2147483648),
- b = new jspb.arith.UInt64(this.lo, this.hi);
- a && (b = new jspb.arith.UInt64(0, 0).sub(b));
- return (a ? "-" : "") + b.toString();
- };
- jspb.arith.Int64.fromString = function (a) {
- var b = 0 < a.length && "-" == a[0];
- b && (a = a.substring(1));
- a = jspb.arith.UInt64.fromString(a);
- if (null === a) return null;
- b && (a = new jspb.arith.UInt64(0, 0).sub(a));
- return new jspb.arith.Int64(a.lo, a.hi);
- };
- jspb.BinaryWriter = function () {
- this.blocks_ = [];
- this.totalLength_ = 0;
- this.encoder_ = new jspb.BinaryEncoder();
- this.bookmarks_ = [];
- };
- jspb.BinaryWriter.prototype.appendUint8Array_ = function (a) {
- var b = this.encoder_.end();
- this.blocks_.push(b);
- this.blocks_.push(a);
- this.totalLength_ += b.length + a.length;
- };
- jspb.BinaryWriter.prototype.beginDelimited_ = function (a) {
- this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED);
- a = this.encoder_.end();
- this.blocks_.push(a);
- this.totalLength_ += a.length;
- a.push(this.totalLength_);
- return a;
- };
- jspb.BinaryWriter.prototype.endDelimited_ = function (a) {
- var b = a.pop();
- b = this.totalLength_ + this.encoder_.length() - b;
- for (jspb.asserts.assert(0 <= b); 127 < b;) {
- a.push(b & 127 | 128), b >>>= 7, this.totalLength_++;
- }
- a.push(b);
- this.totalLength_++;
- };
- jspb.BinaryWriter.prototype.writeSerializedMessage = function (a, b, c) {
- this.appendUint8Array_(a.subarray(b, c));
- };
- jspb.BinaryWriter.prototype.maybeWriteSerializedMessage = function (a, b, c) {
- null != a && null != b && null != c && this.writeSerializedMessage(a, b, c);
- };
- jspb.BinaryWriter.prototype.reset = function () {
- this.blocks_ = [];
- this.encoder_.end();
- this.totalLength_ = 0;
- this.bookmarks_ = [];
- };
- jspb.BinaryWriter.prototype.getResultBuffer = function () {
- jspb.asserts.assert(0 == this.bookmarks_.length);
- for (var a = new Uint8Array(this.totalLength_ + this.encoder_.length()), b = this.blocks_, c = b.length, d = 0, e = 0; e < c; e++) {
- var f = b[e];
- a.set(f, d);
- d += f.length;
- }
- b = this.encoder_.end();
- a.set(b, d);
- d += b.length;
- jspb.asserts.assert(d == a.length);
- this.blocks_ = [a];
- return a;
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "getResultBuffer", jspb.BinaryWriter.prototype.getResultBuffer);
- jspb.BinaryWriter.prototype.getResultBase64String = function (a) {
- return goog.crypt.base64.encodeByteArray(this.getResultBuffer(), a);
- };
- jspb.BinaryWriter.prototype.beginSubMessage = function (a) {
- this.bookmarks_.push(this.beginDelimited_(a));
- };
- jspb.BinaryWriter.prototype.endSubMessage = function () {
- jspb.asserts.assert(0 <= this.bookmarks_.length);
- this.endDelimited_(this.bookmarks_.pop());
- };
- jspb.BinaryWriter.prototype.writeFieldHeader_ = function (a, b) {
- jspb.asserts.assert(1 <= a && a == Math.floor(a));
- this.encoder_.writeUnsignedVarint32(8 * a + b);
- };
- jspb.BinaryWriter.prototype.writeAny = function (a, b, c) {
- var d = jspb.BinaryConstants.FieldType;
- switch (a) {
- case d.DOUBLE:
- this.writeDouble(b, c);
- break;
- case d.FLOAT:
- this.writeFloat(b, c);
- break;
- case d.INT64:
- this.writeInt64(b, c);
- break;
- case d.UINT64:
- this.writeUint64(b, c);
- break;
- case d.INT32:
- this.writeInt32(b, c);
- break;
- case d.FIXED64:
- this.writeFixed64(b, c);
- break;
- case d.FIXED32:
- this.writeFixed32(b, c);
- break;
- case d.BOOL:
- this.writeBool(b, c);
- break;
- case d.STRING:
- this.writeString(b, c);
- break;
- case d.GROUP:
- jspb.asserts.fail("Group field type not supported in writeAny()");
- break;
- case d.MESSAGE:
- jspb.asserts.fail("Message field type not supported in writeAny()");
- break;
- case d.BYTES:
- this.writeBytes(b, c);
- break;
- case d.UINT32:
- this.writeUint32(b, c);
- break;
- case d.ENUM:
- this.writeEnum(b, c);
- break;
- case d.SFIXED32:
- this.writeSfixed32(b, c);
- break;
- case d.SFIXED64:
- this.writeSfixed64(b, c);
- break;
- case d.SINT32:
- this.writeSint32(b, c);
- break;
- case d.SINT64:
- this.writeSint64(b, c);
- break;
- case d.FHASH64:
- this.writeFixedHash64(b, c);
- break;
- case d.VHASH64:
- this.writeVarintHash64(b, c);
- break;
- default:
- jspb.asserts.fail("Invalid field type in writeAny()");
- }
- };
- jspb.BinaryWriter.prototype.writeUnsignedVarint32_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeUnsignedVarint32(b));
- };
- jspb.BinaryWriter.prototype.writeSignedVarint32_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(b));
- };
- jspb.BinaryWriter.prototype.writeUnsignedVarint64_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeUnsignedVarint64(b));
- };
- jspb.BinaryWriter.prototype.writeSignedVarint64_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint64(b));
- };
- jspb.BinaryWriter.prototype.writeZigzagVarint32_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint32(b));
- };
- jspb.BinaryWriter.prototype.writeZigzagVarint64_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint64(b));
- };
- jspb.BinaryWriter.prototype.writeZigzagVarint64String_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint64String(b));
- };
- jspb.BinaryWriter.prototype.writeZigzagVarintHash64_ = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarintHash64(b));
- };
- jspb.BinaryWriter.prototype.writeInt32 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeSignedVarint32_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeInt32", jspb.BinaryWriter.prototype.writeInt32);
- jspb.BinaryWriter.prototype.writeInt32String = function (a, b) {
- null != b && (b = parseInt(b, 10), jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeSignedVarint32_(a, b));
- };
- jspb.BinaryWriter.prototype.writeInt64 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeSignedVarint64_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeInt64", jspb.BinaryWriter.prototype.writeInt64);
- jspb.BinaryWriter.prototype.writeInt64String = function (a, b) {
- null != b && (b = jspb.arith.Int64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSplitVarint64(b.lo, b.hi));
- };
- jspb.BinaryWriter.prototype.writeUint32 = function (a, b) {
- null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeUnsignedVarint32_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeUint32", jspb.BinaryWriter.prototype.writeUint32);
- jspb.BinaryWriter.prototype.writeUint32String = function (a, b) {
- null != b && (b = parseInt(b, 10), jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeUnsignedVarint32_(a, b));
- };
- jspb.BinaryWriter.prototype.writeUint64 = function (a, b) {
- null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_64), this.writeUnsignedVarint64_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeUint64", jspb.BinaryWriter.prototype.writeUint64);
- jspb.BinaryWriter.prototype.writeUint64String = function (a, b) {
- null != b && (b = jspb.arith.UInt64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSplitVarint64(b.lo, b.hi));
- };
- jspb.BinaryWriter.prototype.writeSint32 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeZigzagVarint32_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeSint32", jspb.BinaryWriter.prototype.writeSint32);
- jspb.BinaryWriter.prototype.writeSint64 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeZigzagVarint64_(a, b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeSint64", jspb.BinaryWriter.prototype.writeSint64);
- jspb.BinaryWriter.prototype.writeSintHash64 = function (a, b) {
- null != b && this.writeZigzagVarintHash64_(a, b);
- };
- jspb.BinaryWriter.prototype.writeSint64String = function (a, b) {
- null != b && this.writeZigzagVarint64String_(a, b);
- };
- jspb.BinaryWriter.prototype.writeFixed32 = function (a, b) {
- null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeUint32(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeFixed32", jspb.BinaryWriter.prototype.writeFixed32);
- jspb.BinaryWriter.prototype.writeFixed64 = function (a, b) {
- null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_64), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeUint64(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeFixed64", jspb.BinaryWriter.prototype.writeFixed64);
- jspb.BinaryWriter.prototype.writeFixed64String = function (a, b) {
- null != b && (b = jspb.arith.UInt64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeSplitFixed64(b.lo, b.hi));
- };
- jspb.BinaryWriter.prototype.writeSfixed32 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeInt32(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeSfixed32", jspb.BinaryWriter.prototype.writeSfixed32);
- jspb.BinaryWriter.prototype.writeSfixed64 = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeInt64(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeSfixed64", jspb.BinaryWriter.prototype.writeSfixed64);
- jspb.BinaryWriter.prototype.writeSfixed64String = function (a, b) {
- null != b && (b = jspb.arith.Int64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeSplitFixed64(b.lo, b.hi));
- };
- jspb.BinaryWriter.prototype.writeFloat = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeFloat(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeFloat", jspb.BinaryWriter.prototype.writeFloat);
- jspb.BinaryWriter.prototype.writeDouble = function (a, b) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeDouble(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeDouble", jspb.BinaryWriter.prototype.writeDouble);
- jspb.BinaryWriter.prototype.writeBool = function (a, b) {
- null != b && (jspb.asserts.assert("boolean" === typeof b || "number" === typeof b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeBool(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeBool", jspb.BinaryWriter.prototype.writeBool);
- jspb.BinaryWriter.prototype.writeEnum = function (a, b) {
- null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeEnum", jspb.BinaryWriter.prototype.writeEnum);
- jspb.BinaryWriter.prototype.writeString = function (a, b) {
- null != b && (a = this.beginDelimited_(a), this.encoder_.writeString(b), this.endDelimited_(a));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeString", jspb.BinaryWriter.prototype.writeString);
- jspb.BinaryWriter.prototype.writeBytes = function (a, b) {
- null != b && (b = jspb.utils.byteSourceToUint8Array(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(b.length), this.appendUint8Array_(b));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeBytes", jspb.BinaryWriter.prototype.writeBytes);
- jspb.BinaryWriter.prototype.writeMessage = function (a, b, c) {
- null != b && (a = this.beginDelimited_(a), c(b, this), this.endDelimited_(a));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeMessage", jspb.BinaryWriter.prototype.writeMessage);
- jspb.BinaryWriter.prototype.writeMessageSet = function (a, b, c) {
- null != b && (this.writeFieldHeader_(1, jspb.BinaryConstants.WireType.START_GROUP), this.writeFieldHeader_(2, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(a), a = this.beginDelimited_(3), c(b, this), this.endDelimited_(a), this.writeFieldHeader_(1, jspb.BinaryConstants.WireType.END_GROUP));
- };
- jspb.BinaryWriter.prototype.writeGroup = function (a, b, c) {
- null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.START_GROUP), c(b, this), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.END_GROUP));
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeGroup", jspb.BinaryWriter.prototype.writeGroup);
- jspb.BinaryWriter.prototype.writeFixedHash64 = function (a, b) {
- null != b && (jspb.asserts.assert(8 == b.length), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeFixedHash64(b));
- };
- jspb.BinaryWriter.prototype.writeVarintHash64 = function (a, b) {
- null != b && (jspb.asserts.assert(8 == b.length), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeVarintHash64(b));
- };
- jspb.BinaryWriter.prototype.writeSplitFixed64 = function (a, b, c) {
- this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64);
- this.encoder_.writeSplitFixed64(b, c);
- };
- jspb.BinaryWriter.prototype.writeSplitVarint64 = function (a, b, c) {
- this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT);
- this.encoder_.writeSplitVarint64(b, c);
- };
- jspb.BinaryWriter.prototype.writeSplitZigzagVarint64 = function (a, b, c) {
- this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT);
- var d = this.encoder_;
- jspb.utils.toZigzag64(b, c, function (a, b) {
- d.writeSplitVarint64(a >>> 0, b >>> 0);
- });
- };
- jspb.BinaryWriter.prototype.writeRepeatedInt32 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeSignedVarint32_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedInt32", jspb.BinaryWriter.prototype.writeRepeatedInt32);
- jspb.BinaryWriter.prototype.writeRepeatedInt32String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeInt32String(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedInt64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeSignedVarint64_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedInt64", jspb.BinaryWriter.prototype.writeRepeatedInt64);
- jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64 = function (a, b, c, d) {
- if (null != b) for (var e = 0; e < b.length; e++) {
- this.writeSplitFixed64(a, c(b[e]), d(b[e]));
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64 = function (a, b, c, d) {
- if (null != b) for (var e = 0; e < b.length; e++) {
- this.writeSplitVarint64(a, c(b[e]), d(b[e]));
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64 = function (a, b, c, d) {
- if (null != b) for (var e = 0; e < b.length; e++) {
- this.writeSplitZigzagVarint64(a, c(b[e]), d(b[e]));
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedInt64String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeInt64String(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedUint32 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeUnsignedVarint32_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedUint32", jspb.BinaryWriter.prototype.writeRepeatedUint32);
- jspb.BinaryWriter.prototype.writeRepeatedUint32String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeUint32String(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedUint64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeUnsignedVarint64_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedUint64", jspb.BinaryWriter.prototype.writeRepeatedUint64);
- jspb.BinaryWriter.prototype.writeRepeatedUint64String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeUint64String(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedSint32 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeZigzagVarint32_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSint32", jspb.BinaryWriter.prototype.writeRepeatedSint32);
- jspb.BinaryWriter.prototype.writeRepeatedSint64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeZigzagVarint64_(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSint64", jspb.BinaryWriter.prototype.writeRepeatedSint64);
- jspb.BinaryWriter.prototype.writeRepeatedSint64String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeZigzagVarint64String_(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedSintHash64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeZigzagVarintHash64_(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedFixed32 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeFixed32(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed32", jspb.BinaryWriter.prototype.writeRepeatedFixed32);
- jspb.BinaryWriter.prototype.writeRepeatedFixed64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeFixed64(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed64", jspb.BinaryWriter.prototype.writeRepeatedFixed64);
- jspb.BinaryWriter.prototype.writeRepeatedFixed64String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeFixed64String(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed64String", jspb.BinaryWriter.prototype.writeRepeatedFixed64String);
- jspb.BinaryWriter.prototype.writeRepeatedSfixed32 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeSfixed32(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSfixed32", jspb.BinaryWriter.prototype.writeRepeatedSfixed32);
- jspb.BinaryWriter.prototype.writeRepeatedSfixed64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeSfixed64(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSfixed64", jspb.BinaryWriter.prototype.writeRepeatedSfixed64);
- jspb.BinaryWriter.prototype.writeRepeatedSfixed64String = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeSfixed64String(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedFloat = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeFloat(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFloat", jspb.BinaryWriter.prototype.writeRepeatedFloat);
- jspb.BinaryWriter.prototype.writeRepeatedDouble = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeDouble(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedDouble", jspb.BinaryWriter.prototype.writeRepeatedDouble);
- jspb.BinaryWriter.prototype.writeRepeatedBool = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeBool(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedBool", jspb.BinaryWriter.prototype.writeRepeatedBool);
- jspb.BinaryWriter.prototype.writeRepeatedEnum = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeEnum(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedEnum", jspb.BinaryWriter.prototype.writeRepeatedEnum);
- jspb.BinaryWriter.prototype.writeRepeatedString = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeString(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedString", jspb.BinaryWriter.prototype.writeRepeatedString);
- jspb.BinaryWriter.prototype.writeRepeatedBytes = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeBytes(a, b[c]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedBytes", jspb.BinaryWriter.prototype.writeRepeatedBytes);
- jspb.BinaryWriter.prototype.writeRepeatedMessage = function (a, b, c) {
- if (null != b) for (var d = 0; d < b.length; d++) {
- var e = this.beginDelimited_(a);
- c(b[d], this);
- this.endDelimited_(e);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedMessage", jspb.BinaryWriter.prototype.writeRepeatedMessage);
- jspb.BinaryWriter.prototype.writeRepeatedGroup = function (a, b, c) {
- if (null != b) for (var d = 0; d < b.length; d++) {
- this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.START_GROUP), c(b[d], this), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.END_GROUP);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedGroup", jspb.BinaryWriter.prototype.writeRepeatedGroup);
- jspb.BinaryWriter.prototype.writeRepeatedFixedHash64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeFixedHash64(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writeRepeatedVarintHash64 = function (a, b) {
- if (null != b) for (var c = 0; c < b.length; c++) {
- this.writeVarintHash64(a, b[c]);
- }
- };
- jspb.BinaryWriter.prototype.writePackedInt32 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeSignedVarint32(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedInt32", jspb.BinaryWriter.prototype.writePackedInt32);
- jspb.BinaryWriter.prototype.writePackedInt32String = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeSignedVarint32(parseInt(b[c], 10));
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedInt64 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeSignedVarint64(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedInt64", jspb.BinaryWriter.prototype.writePackedInt64);
- jspb.BinaryWriter.prototype.writePackedSplitFixed64 = function (a, b, c, d) {
- if (null != b) {
- a = this.beginDelimited_(a);
- for (var e = 0; e < b.length; e++) {
- this.encoder_.writeSplitFixed64(c(b[e]), d(b[e]));
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedSplitVarint64 = function (a, b, c, d) {
- if (null != b) {
- a = this.beginDelimited_(a);
- for (var e = 0; e < b.length; e++) {
- this.encoder_.writeSplitVarint64(c(b[e]), d(b[e]));
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64 = function (a, b, c, d) {
- if (null != b) {
- a = this.beginDelimited_(a);
- for (var e = this.encoder_, f = 0; f < b.length; f++) {
- jspb.utils.toZigzag64(c(b[f]), d(b[f]), function (a, b) {
- e.writeSplitVarint64(a >>> 0, b >>> 0);
- });
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedInt64String = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- var d = jspb.arith.Int64.fromString(b[c]);
- this.encoder_.writeSplitVarint64(d.lo, d.hi);
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedUint32 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeUnsignedVarint32(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedUint32", jspb.BinaryWriter.prototype.writePackedUint32);
- jspb.BinaryWriter.prototype.writePackedUint32String = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeUnsignedVarint32(parseInt(b[c], 10));
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedUint64 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeUnsignedVarint64(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedUint64", jspb.BinaryWriter.prototype.writePackedUint64);
- jspb.BinaryWriter.prototype.writePackedUint64String = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- var d = jspb.arith.UInt64.fromString(b[c]);
- this.encoder_.writeSplitVarint64(d.lo, d.hi);
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedSint32 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeZigzagVarint32(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSint32", jspb.BinaryWriter.prototype.writePackedSint32);
- jspb.BinaryWriter.prototype.writePackedSint64 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeZigzagVarint64(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSint64", jspb.BinaryWriter.prototype.writePackedSint64);
- jspb.BinaryWriter.prototype.writePackedSint64String = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(b[c]));
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedSintHash64 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeZigzagVarintHash64(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- jspb.BinaryWriter.prototype.writePackedFixed32 = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeUint32(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFixed32", jspb.BinaryWriter.prototype.writePackedFixed32);
- jspb.BinaryWriter.prototype.writePackedFixed64 = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeUint64(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFixed64", jspb.BinaryWriter.prototype.writePackedFixed64);
- jspb.BinaryWriter.prototype.writePackedFixed64String = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- var c = jspb.arith.UInt64.fromString(b[a]);
- this.encoder_.writeSplitFixed64(c.lo, c.hi);
- }
- };
- jspb.BinaryWriter.prototype.writePackedSfixed32 = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeInt32(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSfixed32", jspb.BinaryWriter.prototype.writePackedSfixed32);
- jspb.BinaryWriter.prototype.writePackedSfixed64 = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeInt64(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSfixed64", jspb.BinaryWriter.prototype.writePackedSfixed64);
- jspb.BinaryWriter.prototype.writePackedSfixed64String = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeInt64String(b[a]);
- }
- };
- jspb.BinaryWriter.prototype.writePackedFloat = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeFloat(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFloat", jspb.BinaryWriter.prototype.writePackedFloat);
- jspb.BinaryWriter.prototype.writePackedDouble = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeDouble(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedDouble", jspb.BinaryWriter.prototype.writePackedDouble);
- jspb.BinaryWriter.prototype.writePackedBool = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeBool(b[a]);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedBool", jspb.BinaryWriter.prototype.writePackedBool);
- jspb.BinaryWriter.prototype.writePackedEnum = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeEnum(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedEnum", jspb.BinaryWriter.prototype.writePackedEnum);
- jspb.BinaryWriter.prototype.writePackedFixedHash64 = function (a, b) {
- if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
- this.encoder_.writeFixedHash64(b[a]);
- }
- };
- jspb.BinaryWriter.prototype.writePackedVarintHash64 = function (a, b) {
- if (null != b && b.length) {
- a = this.beginDelimited_(a);
- for (var c = 0; c < b.length; c++) {
- this.encoder_.writeVarintHash64(b[c]);
- }
- this.endDelimited_(a);
- }
- };
- jspb.Map = function (a, b) {
- this.arr_ = a;
- this.valueCtor_ = b;
- this.map_ = {};
- this.arrClean = !0;
- 0 < this.arr_.length && this.loadFromArray_();
- };
- goog.exportSymbol("jspb.Map", jspb.Map);
- jspb.Map.prototype.loadFromArray_ = function () {
- for (var a = 0; a < this.arr_.length; a++) {
- var b = this.arr_[a],
- c = b[0];
- this.map_[c.toString()] = new jspb.Map.Entry_(c, b[1]);
- }
- this.arrClean = !0;
- };
- jspb.Map.prototype.toArray = function () {
- if (this.arrClean) {
- if (this.valueCtor_) {
- var a = this.map_,
- b;
- for (b in a) {
- if (Object.prototype.hasOwnProperty.call(a, b)) {
- var c = a[b].valueWrapper;
- c && c.toArray();
- }
- }
- }
- } else {
- this.arr_.length = 0;
- a = this.stringKeys_();
- a.sort();
- for (b = 0; b < a.length; b++) {
- var d = this.map_[a[b]];
- (c = d.valueWrapper) && c.toArray();
- this.arr_.push([d.key, d.value]);
- }
- this.arrClean = !0;
- }
- return this.arr_;
- };
- goog.exportProperty(jspb.Map.prototype, "toArray", jspb.Map.prototype.toArray);
- jspb.Map.prototype.toObject = function (a, b) {
- for (var c = this.toArray(), d = [], e = 0; e < c.length; e++) {
- var f = this.map_[c[e][0].toString()];
- this.wrapEntry_(f);
- var g = f.valueWrapper;
- g ? (jspb.asserts.assert(b), d.push([f.key, b(a, g)])) : d.push([f.key, f.value]);
- }
- return d;
- };
- goog.exportProperty(jspb.Map.prototype, "toObject", jspb.Map.prototype.toObject);
- jspb.Map.fromObject = function (a, b, c) {
- b = new jspb.Map([], b);
- for (var d = 0; d < a.length; d++) {
- var e = a[d][0],
- f = c(a[d][1]);
- b.set(e, f);
- }
- return b;
- };
- goog.exportProperty(jspb.Map, "fromObject", jspb.Map.fromObject);
- jspb.Map.ArrayIteratorIterable_ = function (a) {
- this.idx_ = 0;
- this.arr_ = a;
- };
- jspb.Map.ArrayIteratorIterable_.prototype.next = function () {
- return this.idx_ < this.arr_.length ? {
- done: !1,
- value: this.arr_[this.idx_++]
- } : {
- done: !0,
- value: void 0
- };
- };
- "undefined" != typeof Symbol && (jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator] = function () {
- return this;
- });
- jspb.Map.prototype.getLength = function () {
- return this.stringKeys_().length;
- };
- goog.exportProperty(jspb.Map.prototype, "getLength", jspb.Map.prototype.getLength);
- jspb.Map.prototype.clear = function () {
- this.map_ = {};
- this.arrClean = !1;
- };
- goog.exportProperty(jspb.Map.prototype, "clear", jspb.Map.prototype.clear);
- jspb.Map.prototype.del = function (a) {
- a = a.toString();
- var b = this.map_.hasOwnProperty(a);
- delete this.map_[a];
- this.arrClean = !1;
- return b;
- };
- goog.exportProperty(jspb.Map.prototype, "del", jspb.Map.prototype.del);
- jspb.Map.prototype.getEntryList = function () {
- var a = [],
- b = this.stringKeys_();
- b.sort();
- for (var c = 0; c < b.length; c++) {
- var d = this.map_[b[c]];
- a.push([d.key, d.value]);
- }
- return a;
- };
- goog.exportProperty(jspb.Map.prototype, "getEntryList", jspb.Map.prototype.getEntryList);
- jspb.Map.prototype.entries = function () {
- var a = [],
- b = this.stringKeys_();
- b.sort();
- for (var c = 0; c < b.length; c++) {
- var d = this.map_[b[c]];
- a.push([d.key, this.wrapEntry_(d)]);
- }
- return new jspb.Map.ArrayIteratorIterable_(a);
- };
- goog.exportProperty(jspb.Map.prototype, "entries", jspb.Map.prototype.entries);
- jspb.Map.prototype.keys = function () {
- var a = [],
- b = this.stringKeys_();
- b.sort();
- for (var c = 0; c < b.length; c++) {
- a.push(this.map_[b[c]].key);
- }
- return new jspb.Map.ArrayIteratorIterable_(a);
- };
- goog.exportProperty(jspb.Map.prototype, "keys", jspb.Map.prototype.keys);
- jspb.Map.prototype.values = function () {
- var a = [],
- b = this.stringKeys_();
- b.sort();
- for (var c = 0; c < b.length; c++) {
- a.push(this.wrapEntry_(this.map_[b[c]]));
- }
- return new jspb.Map.ArrayIteratorIterable_(a);
- };
- goog.exportProperty(jspb.Map.prototype, "values", jspb.Map.prototype.values);
- jspb.Map.prototype.forEach = function (a, b) {
- var c = this.stringKeys_();
- c.sort();
- for (var d = 0; d < c.length; d++) {
- var e = this.map_[c[d]];
- a.call(b, this.wrapEntry_(e), e.key, this);
- }
- };
- goog.exportProperty(jspb.Map.prototype, "forEach", jspb.Map.prototype.forEach);
- jspb.Map.prototype.set = function (a, b) {
- var c = new jspb.Map.Entry_(a);
- this.valueCtor_ ? (c.valueWrapper = b, c.value = b.toArray()) : c.value = b;
- this.map_[a.toString()] = c;
- this.arrClean = !1;
- return this;
- };
- goog.exportProperty(jspb.Map.prototype, "set", jspb.Map.prototype.set);
- jspb.Map.prototype.wrapEntry_ = function (a) {
- return this.valueCtor_ ? (a.valueWrapper || (a.valueWrapper = new this.valueCtor_(a.value)), a.valueWrapper) : a.value;
- };
- jspb.Map.prototype.get = function (a) {
- if (a = this.map_[a.toString()]) return this.wrapEntry_(a);
- };
- goog.exportProperty(jspb.Map.prototype, "get", jspb.Map.prototype.get);
- jspb.Map.prototype.has = function (a) {
- return a.toString() in this.map_;
- };
- goog.exportProperty(jspb.Map.prototype, "has", jspb.Map.prototype.has);
- jspb.Map.prototype.serializeBinary = function (a, b, c, d, e) {
- var f = this.stringKeys_();
- f.sort();
- for (var g = 0; g < f.length; g++) {
- var h = this.map_[f[g]];
- b.beginSubMessage(a);
- c.call(b, 1, h.key);
- this.valueCtor_ ? d.call(b, 2, this.wrapEntry_(h), e) : d.call(b, 2, h.value);
- b.endSubMessage();
- }
- };
- goog.exportProperty(jspb.Map.prototype, "serializeBinary", jspb.Map.prototype.serializeBinary);
- jspb.Map.deserializeBinary = function (a, b, c, d, e, f, g) {
- for (; b.nextField() && !b.isEndGroup();) {
- var h = b.getFieldNumber();
- 1 == h ? f = c.call(b) : 2 == h && (a.valueCtor_ ? (jspb.asserts.assert(e), g || (g = new a.valueCtor_()), d.call(b, g, e)) : g = d.call(b));
- }
- jspb.asserts.assert(void 0 != f);
- jspb.asserts.assert(void 0 != g);
- a.set(f, g);
- };
- goog.exportProperty(jspb.Map, "deserializeBinary", jspb.Map.deserializeBinary);
- jspb.Map.prototype.stringKeys_ = function () {
- var a = this.map_,
- b = [],
- c;
- for (c in a) {
- Object.prototype.hasOwnProperty.call(a, c) && b.push(c);
- }
- return b;
- };
- jspb.Map.Entry_ = function (a, b) {
- this.key = a;
- this.value = b;
- this.valueWrapper = void 0;
- };
- jspb.ExtensionFieldInfo = function (a, b, c, d, e) {
- this.fieldIndex = a;
- this.fieldName = b;
- this.ctor = c;
- this.toObjectFn = d;
- this.isRepeated = e;
- };
- goog.exportSymbol("jspb.ExtensionFieldInfo", jspb.ExtensionFieldInfo);
- jspb.ExtensionFieldBinaryInfo = function (a, b, c, d, e, f) {
- this.fieldInfo = a;
- this.binaryReaderFn = b;
- this.binaryWriterFn = c;
- this.binaryMessageSerializeFn = d;
- this.binaryMessageDeserializeFn = e;
- this.isPacked = f;
- };
- goog.exportSymbol("jspb.ExtensionFieldBinaryInfo", jspb.ExtensionFieldBinaryInfo);
- jspb.ExtensionFieldInfo.prototype.isMessageType = function () {
- return !!this.ctor;
- };
- goog.exportProperty(jspb.ExtensionFieldInfo.prototype, "isMessageType", jspb.ExtensionFieldInfo.prototype.isMessageType);
- jspb.Message = function () {};
- goog.exportSymbol("jspb.Message", jspb.Message);
- jspb.Message.GENERATE_TO_OBJECT = !0;
- goog.exportProperty(jspb.Message, "GENERATE_TO_OBJECT", jspb.Message.GENERATE_TO_OBJECT);
- jspb.Message.GENERATE_FROM_OBJECT = !goog.DISALLOW_TEST_ONLY_CODE;
- goog.exportProperty(jspb.Message, "GENERATE_FROM_OBJECT", jspb.Message.GENERATE_FROM_OBJECT);
- jspb.Message.GENERATE_TO_STRING = !0;
- jspb.Message.ASSUME_LOCAL_ARRAYS = !1;
- jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS = !0;
- jspb.Message.SUPPORTS_UINT8ARRAY_ = "function" == typeof Uint8Array;
- jspb.Message.prototype.getJsPbMessageId = function () {
- return this.messageId_;
- };
- goog.exportProperty(jspb.Message.prototype, "getJsPbMessageId", jspb.Message.prototype.getJsPbMessageId);
- jspb.Message.getIndex_ = function (a, b) {
- return b + a.arrayIndexOffset_;
- };
- jspb.Message.hiddenES6Property_ = function () {};
- jspb.Message.getFieldNumber_ = function (a, b) {
- return b - a.arrayIndexOffset_;
- };
- jspb.Message.initialize = function (a, b, c, d, e, f) {
- a.wrappers_ = null;
- b || (b = c ? [c] : []);
- a.messageId_ = c ? String(c) : void 0;
- a.arrayIndexOffset_ = 0 === c ? -1 : 0;
- a.array = b;
- jspb.Message.initPivotAndExtensionObject_(a, d);
- a.convertedPrimitiveFields_ = {};
- jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS || (a.repeatedFields = e);
- if (e) for (b = 0; b < e.length; b++) {
- c = e[b], c < a.pivot_ ? (c = jspb.Message.getIndex_(a, c), a.array[c] = a.array[c] || jspb.Message.EMPTY_LIST_SENTINEL_) : (jspb.Message.maybeInitEmptyExtensionObject_(a), a.extensionObject_[c] = a.extensionObject_[c] || jspb.Message.EMPTY_LIST_SENTINEL_);
- }
- if (f && f.length) for (b = 0; b < f.length; b++) {
- jspb.Message.computeOneofCase(a, f[b]);
- }
- };
- goog.exportProperty(jspb.Message, "initialize", jspb.Message.initialize);
- jspb.Message.EMPTY_LIST_SENTINEL_ = goog.DEBUG && Object.freeze ? Object.freeze([]) : [];
- jspb.Message.isArray_ = function (a) {
- return jspb.Message.ASSUME_LOCAL_ARRAYS ? a instanceof Array : Array.isArray(a);
- };
- jspb.Message.isExtensionObject_ = function (a) {
- return null !== a && "object" == _typeof(a) && !jspb.Message.isArray_(a) && !(jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array);
- };
- jspb.Message.initPivotAndExtensionObject_ = function (a, b) {
- var c = a.array.length,
- d = -1;
- if (c && (d = c - 1, c = a.array[d], jspb.Message.isExtensionObject_(c))) {
- a.pivot_ = jspb.Message.getFieldNumber_(a, d);
- a.extensionObject_ = c;
- return;
- }
- -1 < b ? (a.pivot_ = Math.max(b, jspb.Message.getFieldNumber_(a, d + 1)), a.extensionObject_ = null) : a.pivot_ = Number.MAX_VALUE;
- };
- jspb.Message.maybeInitEmptyExtensionObject_ = function (a) {
- var b = jspb.Message.getIndex_(a, a.pivot_);
- a.array[b] || (a.extensionObject_ = a.array[b] = {});
- };
- jspb.Message.toObjectList = function (a, b, c) {
- for (var d = [], e = 0; e < a.length; e++) {
- d[e] = b.call(a[e], c, a[e]);
- }
- return d;
- };
- goog.exportProperty(jspb.Message, "toObjectList", jspb.Message.toObjectList);
- jspb.Message.toObjectExtension = function (a, b, c, d, e) {
- for (var f in c) {
- var g = c[f],
- h = d.call(a, g);
- if (null != h) {
- for (var k in g.fieldName) {
- if (g.fieldName.hasOwnProperty(k)) break;
- }
- b[k] = g.toObjectFn ? g.isRepeated ? jspb.Message.toObjectList(h, g.toObjectFn, e) : g.toObjectFn(e, h) : h;
- }
- }
- };
- goog.exportProperty(jspb.Message, "toObjectExtension", jspb.Message.toObjectExtension);
- jspb.Message.serializeBinaryExtensions = function (a, b, c, d) {
- for (var e in c) {
- var f = c[e],
- g = f.fieldInfo;
- if (!f.binaryWriterFn) throw Error("Message extension present that was generated without binary serialization support");
- var h = d.call(a, g);
- if (null != h) if (g.isMessageType()) {
- if (f.binaryMessageSerializeFn) f.binaryWriterFn.call(b, g.fieldIndex, h, f.binaryMessageSerializeFn);else throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");
- } else f.binaryWriterFn.call(b, g.fieldIndex, h);
- }
- };
- goog.exportProperty(jspb.Message, "serializeBinaryExtensions", jspb.Message.serializeBinaryExtensions);
- jspb.Message.readBinaryExtension = function (a, b, c, d, e) {
- var f = c[b.getFieldNumber()];
- if (f) {
- c = f.fieldInfo;
- if (!f.binaryReaderFn) throw Error("Deserializing extension whose generated code does not support binary format");
- if (c.isMessageType()) {
- var g = new c.ctor();
- f.binaryReaderFn.call(b, g, f.binaryMessageDeserializeFn);
- } else g = f.binaryReaderFn.call(b);
- c.isRepeated && !f.isPacked ? (b = d.call(a, c)) ? b.push(g) : e.call(a, c, [g]) : e.call(a, c, g);
- } else b.skipField();
- };
- goog.exportProperty(jspb.Message, "readBinaryExtension", jspb.Message.readBinaryExtension);
- jspb.Message.getField = function (a, b) {
- if (b < a.pivot_) {
- b = jspb.Message.getIndex_(a, b);
- var c = a.array[b];
- return c === jspb.Message.EMPTY_LIST_SENTINEL_ ? a.array[b] = [] : c;
- }
- if (a.extensionObject_) return c = a.extensionObject_[b], c === jspb.Message.EMPTY_LIST_SENTINEL_ ? a.extensionObject_[b] = [] : c;
- };
- goog.exportProperty(jspb.Message, "getField", jspb.Message.getField);
- jspb.Message.getRepeatedField = function (a, b) {
- return jspb.Message.getField(a, b);
- };
- goog.exportProperty(jspb.Message, "getRepeatedField", jspb.Message.getRepeatedField);
- jspb.Message.getOptionalFloatingPointField = function (a, b) {
- a = jspb.Message.getField(a, b);
- return null == a ? a : +a;
- };
- goog.exportProperty(jspb.Message, "getOptionalFloatingPointField", jspb.Message.getOptionalFloatingPointField);
- jspb.Message.getBooleanField = function (a, b) {
- a = jspb.Message.getField(a, b);
- return null == a ? a : !!a;
- };
- goog.exportProperty(jspb.Message, "getBooleanField", jspb.Message.getBooleanField);
- jspb.Message.getRepeatedFloatingPointField = function (a, b) {
- var c = jspb.Message.getRepeatedField(a, b);
- a.convertedPrimitiveFields_ || (a.convertedPrimitiveFields_ = {});
- if (!a.convertedPrimitiveFields_[b]) {
- for (var d = 0; d < c.length; d++) {
- c[d] = +c[d];
- }
- a.convertedPrimitiveFields_[b] = !0;
- }
- return c;
- };
- goog.exportProperty(jspb.Message, "getRepeatedFloatingPointField", jspb.Message.getRepeatedFloatingPointField);
- jspb.Message.getRepeatedBooleanField = function (a, b) {
- var c = jspb.Message.getRepeatedField(a, b);
- a.convertedPrimitiveFields_ || (a.convertedPrimitiveFields_ = {});
- if (!a.convertedPrimitiveFields_[b]) {
- for (var d = 0; d < c.length; d++) {
- c[d] = !!c[d];
- }
- a.convertedPrimitiveFields_[b] = !0;
- }
- return c;
- };
- goog.exportProperty(jspb.Message, "getRepeatedBooleanField", jspb.Message.getRepeatedBooleanField);
- jspb.Message.bytesAsB64 = function (a) {
- if (null == a || "string" === typeof a) return a;
- if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array) return goog.crypt.base64.encodeByteArray(a);
- jspb.asserts.fail("Cannot coerce to b64 string: " + goog.typeOf(a));
- return null;
- };
- goog.exportProperty(jspb.Message, "bytesAsB64", jspb.Message.bytesAsB64);
- jspb.Message.bytesAsU8 = function (a) {
- if (null == a || a instanceof Uint8Array) return a;
- if ("string" === typeof a) return goog.crypt.base64.decodeStringToUint8Array(a);
- jspb.asserts.fail("Cannot coerce to Uint8Array: " + goog.typeOf(a));
- return null;
- };
- goog.exportProperty(jspb.Message, "bytesAsU8", jspb.Message.bytesAsU8);
- jspb.Message.bytesListAsB64 = function (a) {
- jspb.Message.assertConsistentTypes_(a);
- return a.length && "string" !== typeof a[0] ? goog.array.map(a, jspb.Message.bytesAsB64) : a;
- };
- goog.exportProperty(jspb.Message, "bytesListAsB64", jspb.Message.bytesListAsB64);
- jspb.Message.bytesListAsU8 = function (a) {
- jspb.Message.assertConsistentTypes_(a);
- return !a.length || a[0] instanceof Uint8Array ? a : goog.array.map(a, jspb.Message.bytesAsU8);
- };
- goog.exportProperty(jspb.Message, "bytesListAsU8", jspb.Message.bytesListAsU8);
- jspb.Message.assertConsistentTypes_ = function (a) {
- if (goog.DEBUG && a && 1 < a.length) {
- var b = goog.typeOf(a[0]);
- goog.array.forEach(a, function (a) {
- goog.typeOf(a) != b && jspb.asserts.fail("Inconsistent type in JSPB repeated field array. Got " + goog.typeOf(a) + " expected " + b);
- });
- }
- };
- jspb.Message.getFieldWithDefault = function (a, b, c) {
- a = jspb.Message.getField(a, b);
- return null == a ? c : a;
- };
- goog.exportProperty(jspb.Message, "getFieldWithDefault", jspb.Message.getFieldWithDefault);
- jspb.Message.getBooleanFieldWithDefault = function (a, b, c) {
- a = jspb.Message.getBooleanField(a, b);
- return null == a ? c : a;
- };
- goog.exportProperty(jspb.Message, "getBooleanFieldWithDefault", jspb.Message.getBooleanFieldWithDefault);
- jspb.Message.getFloatingPointFieldWithDefault = function (a, b, c) {
- a = jspb.Message.getOptionalFloatingPointField(a, b);
- return null == a ? c : a;
- };
- goog.exportProperty(jspb.Message, "getFloatingPointFieldWithDefault", jspb.Message.getFloatingPointFieldWithDefault);
- jspb.Message.getFieldProto3 = jspb.Message.getFieldWithDefault;
- goog.exportProperty(jspb.Message, "getFieldProto3", jspb.Message.getFieldProto3);
- jspb.Message.getMapField = function (a, b, c, d) {
- a.wrappers_ || (a.wrappers_ = {});
- if (b in a.wrappers_) return a.wrappers_[b];
- var e = jspb.Message.getField(a, b);
- if (!e) {
- if (c) return;
- e = [];
- jspb.Message.setField(a, b, e);
- }
- return a.wrappers_[b] = new jspb.Map(e, d);
- };
- goog.exportProperty(jspb.Message, "getMapField", jspb.Message.getMapField);
- jspb.Message.setField = function (a, b, c) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- b < a.pivot_ ? a.array[jspb.Message.getIndex_(a, b)] = c : (jspb.Message.maybeInitEmptyExtensionObject_(a), a.extensionObject_[b] = c);
- return a;
- };
- goog.exportProperty(jspb.Message, "setField", jspb.Message.setField);
- jspb.Message.setProto3IntField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
- };
- goog.exportProperty(jspb.Message, "setProto3IntField", jspb.Message.setProto3IntField);
- jspb.Message.setProto3FloatField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
- };
- goog.exportProperty(jspb.Message, "setProto3FloatField", jspb.Message.setProto3FloatField);
- jspb.Message.setProto3BooleanField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, !1);
- };
- goog.exportProperty(jspb.Message, "setProto3BooleanField", jspb.Message.setProto3BooleanField);
- jspb.Message.setProto3StringField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, "");
- };
- goog.exportProperty(jspb.Message, "setProto3StringField", jspb.Message.setProto3StringField);
- jspb.Message.setProto3BytesField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, "");
- };
- goog.exportProperty(jspb.Message, "setProto3BytesField", jspb.Message.setProto3BytesField);
- jspb.Message.setProto3EnumField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
- };
- goog.exportProperty(jspb.Message, "setProto3EnumField", jspb.Message.setProto3EnumField);
- jspb.Message.setProto3StringIntField = function (a, b, c) {
- return jspb.Message.setFieldIgnoringDefault_(a, b, c, "0");
- };
- goog.exportProperty(jspb.Message, "setProto3StringIntField", jspb.Message.setProto3StringIntField);
- jspb.Message.setFieldIgnoringDefault_ = function (a, b, c, d) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- c !== d ? jspb.Message.setField(a, b, c) : b < a.pivot_ ? a.array[jspb.Message.getIndex_(a, b)] = null : (jspb.Message.maybeInitEmptyExtensionObject_(a), delete a.extensionObject_[b]);
- return a;
- };
- jspb.Message.addToRepeatedField = function (a, b, c, d) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- b = jspb.Message.getRepeatedField(a, b);
- void 0 != d ? b.splice(d, 0, c) : b.push(c);
- return a;
- };
- goog.exportProperty(jspb.Message, "addToRepeatedField", jspb.Message.addToRepeatedField);
- jspb.Message.setOneofField = function (a, b, c, d) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- (c = jspb.Message.computeOneofCase(a, c)) && c !== b && void 0 !== d && (a.wrappers_ && c in a.wrappers_ && (a.wrappers_[c] = void 0), jspb.Message.setField(a, c, void 0));
- return jspb.Message.setField(a, b, d);
- };
- goog.exportProperty(jspb.Message, "setOneofField", jspb.Message.setOneofField);
- jspb.Message.computeOneofCase = function (a, b) {
- for (var c, d, e = 0; e < b.length; e++) {
- var f = b[e],
- g = jspb.Message.getField(a, f);
- null != g && (c = f, d = g, jspb.Message.setField(a, f, void 0));
- }
- return c ? (jspb.Message.setField(a, c, d), c) : 0;
- };
- goog.exportProperty(jspb.Message, "computeOneofCase", jspb.Message.computeOneofCase);
- jspb.Message.getWrapperField = function (a, b, c, d) {
- a.wrappers_ || (a.wrappers_ = {});
- if (!a.wrappers_[c]) {
- var e = jspb.Message.getField(a, c);
- if (d || e) a.wrappers_[c] = new b(e);
- }
- return a.wrappers_[c];
- };
- goog.exportProperty(jspb.Message, "getWrapperField", jspb.Message.getWrapperField);
- jspb.Message.getRepeatedWrapperField = function (a, b, c) {
- jspb.Message.wrapRepeatedField_(a, b, c);
- b = a.wrappers_[c];
- b == jspb.Message.EMPTY_LIST_SENTINEL_ && (b = a.wrappers_[c] = []);
- return b;
- };
- goog.exportProperty(jspb.Message, "getRepeatedWrapperField", jspb.Message.getRepeatedWrapperField);
- jspb.Message.wrapRepeatedField_ = function (a, b, c) {
- a.wrappers_ || (a.wrappers_ = {});
- if (!a.wrappers_[c]) {
- for (var d = jspb.Message.getRepeatedField(a, c), e = [], f = 0; f < d.length; f++) {
- e[f] = new b(d[f]);
- }
- a.wrappers_[c] = e;
- }
- };
- jspb.Message.setWrapperField = function (a, b, c) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- a.wrappers_ || (a.wrappers_ = {});
- var d = c ? c.toArray() : c;
- a.wrappers_[b] = c;
- return jspb.Message.setField(a, b, d);
- };
- goog.exportProperty(jspb.Message, "setWrapperField", jspb.Message.setWrapperField);
- jspb.Message.setOneofWrapperField = function (a, b, c, d) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- a.wrappers_ || (a.wrappers_ = {});
- var e = d ? d.toArray() : d;
- a.wrappers_[b] = d;
- return jspb.Message.setOneofField(a, b, c, e);
- };
- goog.exportProperty(jspb.Message, "setOneofWrapperField", jspb.Message.setOneofWrapperField);
- jspb.Message.setRepeatedWrapperField = function (a, b, c) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- a.wrappers_ || (a.wrappers_ = {});
- c = c || [];
- for (var d = [], e = 0; e < c.length; e++) {
- d[e] = c[e].toArray();
- }
- a.wrappers_[b] = c;
- return jspb.Message.setField(a, b, d);
- };
- goog.exportProperty(jspb.Message, "setRepeatedWrapperField", jspb.Message.setRepeatedWrapperField);
- jspb.Message.addToRepeatedWrapperField = function (a, b, c, d, e) {
- jspb.Message.wrapRepeatedField_(a, d, b);
- var f = a.wrappers_[b];
- f || (f = a.wrappers_[b] = []);
- c = c ? c : new d();
- a = jspb.Message.getRepeatedField(a, b);
- void 0 != e ? (f.splice(e, 0, c), a.splice(e, 0, c.toArray())) : (f.push(c), a.push(c.toArray()));
- return c;
- };
- goog.exportProperty(jspb.Message, "addToRepeatedWrapperField", jspb.Message.addToRepeatedWrapperField);
- jspb.Message.toMap = function (a, b, c, d) {
- for (var e = {}, f = 0; f < a.length; f++) {
- e[b.call(a[f])] = c ? c.call(a[f], d, a[f]) : a[f];
- }
- return e;
- };
- goog.exportProperty(jspb.Message, "toMap", jspb.Message.toMap);
- jspb.Message.prototype.syncMapFields_ = function () {
- if (this.wrappers_) for (var a in this.wrappers_) {
- var b = this.wrappers_[a];
- if (Array.isArray(b)) for (var c = 0; c < b.length; c++) {
- b[c] && b[c].toArray();
- } else b && b.toArray();
- }
- };
- jspb.Message.prototype.toArray = function () {
- this.syncMapFields_();
- return this.array;
- };
- goog.exportProperty(jspb.Message.prototype, "toArray", jspb.Message.prototype.toArray);
- jspb.Message.GENERATE_TO_STRING && (jspb.Message.prototype.toString = function () {
- this.syncMapFields_();
- return this.array.toString();
- });
- jspb.Message.prototype.getExtension = function (a) {
- if (this.extensionObject_) {
- this.wrappers_ || (this.wrappers_ = {});
- var b = a.fieldIndex;
- if (a.isRepeated) {
- if (a.isMessageType()) return this.wrappers_[b] || (this.wrappers_[b] = goog.array.map(this.extensionObject_[b] || [], function (b) {
- return new a.ctor(b);
- })), this.wrappers_[b];
- } else if (a.isMessageType()) return !this.wrappers_[b] && this.extensionObject_[b] && (this.wrappers_[b] = new a.ctor(this.extensionObject_[b])), this.wrappers_[b];
- return this.extensionObject_[b];
- }
- };
- goog.exportProperty(jspb.Message.prototype, "getExtension", jspb.Message.prototype.getExtension);
- jspb.Message.prototype.setExtension = function (a, b) {
- this.wrappers_ || (this.wrappers_ = {});
- jspb.Message.maybeInitEmptyExtensionObject_(this);
- var c = a.fieldIndex;
- a.isRepeated ? (b = b || [], a.isMessageType() ? (this.wrappers_[c] = b, this.extensionObject_[c] = goog.array.map(b, function (a) {
- return a.toArray();
- })) : this.extensionObject_[c] = b) : a.isMessageType() ? (this.wrappers_[c] = b, this.extensionObject_[c] = b ? b.toArray() : b) : this.extensionObject_[c] = b;
- return this;
- };
- goog.exportProperty(jspb.Message.prototype, "setExtension", jspb.Message.prototype.setExtension);
- jspb.Message.difference = function (a, b) {
- if (!(a instanceof b.constructor)) throw Error("Messages have different types.");
- var c = a.toArray();
- b = b.toArray();
- var d = [],
- e = 0,
- f = c.length > b.length ? c.length : b.length;
- a.getJsPbMessageId() && (d[0] = a.getJsPbMessageId(), e = 1);
- for (; e < f; e++) {
- jspb.Message.compareFields(c[e], b[e]) || (d[e] = b[e]);
- }
- return new a.constructor(d);
- };
- goog.exportProperty(jspb.Message, "difference", jspb.Message.difference);
- jspb.Message.equals = function (a, b) {
- return a == b || !(!a || !b) && a instanceof b.constructor && jspb.Message.compareFields(a.toArray(), b.toArray());
- };
- goog.exportProperty(jspb.Message, "equals", jspb.Message.equals);
- jspb.Message.compareExtensions = function (a, b) {
- a = a || {};
- b = b || {};
- var c = {},
- d;
- for (d in a) {
- c[d] = 0;
- }
- for (d in b) {
- c[d] = 0;
- }
- for (d in c) {
- if (!jspb.Message.compareFields(a[d], b[d])) return !1;
- }
- return !0;
- };
- goog.exportProperty(jspb.Message, "compareExtensions", jspb.Message.compareExtensions);
- jspb.Message.compareFields = function (a, b) {
- if (a == b) return !0;
- if (!goog.isObject(a) || !goog.isObject(b)) return "number" === typeof a && isNaN(a) || "number" === typeof b && isNaN(b) ? String(a) == String(b) : !1;
- if (a.constructor != b.constructor) return !1;
- if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a.constructor === Uint8Array) {
- if (a.length != b.length) return !1;
- for (var c = 0; c < a.length; c++) {
- if (a[c] != b[c]) return !1;
- }
- return !0;
- }
- if (a.constructor === Array) {
- var d = void 0,
- e = void 0,
- f = Math.max(a.length, b.length);
- for (c = 0; c < f; c++) {
- var g = a[c],
- h = b[c];
- g && g.constructor == Object && (jspb.asserts.assert(void 0 === d), jspb.asserts.assert(c === a.length - 1), d = g, g = void 0);
- h && h.constructor == Object && (jspb.asserts.assert(void 0 === e), jspb.asserts.assert(c === b.length - 1), e = h, h = void 0);
- if (!jspb.Message.compareFields(g, h)) return !1;
- }
- return d || e ? (d = d || {}, e = e || {}, jspb.Message.compareExtensions(d, e)) : !0;
- }
- if (a.constructor === Object) return jspb.Message.compareExtensions(a, b);
- throw Error("Invalid type in JSPB array");
- };
- goog.exportProperty(jspb.Message, "compareFields", jspb.Message.compareFields);
- jspb.Message.prototype.cloneMessage = function () {
- return jspb.Message.cloneMessage(this);
- };
- goog.exportProperty(jspb.Message.prototype, "cloneMessage", jspb.Message.prototype.cloneMessage);
- jspb.Message.prototype.clone = function () {
- return jspb.Message.cloneMessage(this);
- };
- goog.exportProperty(jspb.Message.prototype, "clone", jspb.Message.prototype.clone);
- jspb.Message.clone = function (a) {
- return jspb.Message.cloneMessage(a);
- };
- goog.exportProperty(jspb.Message, "clone", jspb.Message.clone);
- jspb.Message.cloneMessage = function (a) {
- return new a.constructor(jspb.Message.clone_(a.toArray()));
- };
- jspb.Message.copyInto = function (a, b) {
- jspb.asserts.assertInstanceof(a, jspb.Message);
- jspb.asserts.assertInstanceof(b, jspb.Message);
- jspb.asserts.assert(a.constructor == b.constructor, "Copy source and target message should have the same type.");
- a = jspb.Message.clone(a);
- for (var c = b.toArray(), d = a.toArray(), e = c.length = 0; e < d.length; e++) {
- c[e] = d[e];
- }
- b.wrappers_ = a.wrappers_;
- b.extensionObject_ = a.extensionObject_;
- };
- goog.exportProperty(jspb.Message, "copyInto", jspb.Message.copyInto);
- jspb.Message.clone_ = function (a) {
- if (Array.isArray(a)) {
- for (var b = Array(a.length), c = 0; c < a.length; c++) {
- var d = a[c];
- null != d && (b[c] = "object" == _typeof(d) ? jspb.Message.clone_(jspb.asserts.assert(d)) : d);
- }
- return b;
- }
- if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array) return new Uint8Array(a);
- b = {};
- for (c in a) {
- d = a[c], null != d && (b[c] = "object" == _typeof(d) ? jspb.Message.clone_(jspb.asserts.assert(d)) : d);
- }
- return b;
- };
- jspb.Message.registerMessageType = function (a, b) {
- b.messageId = a;
- };
- goog.exportProperty(jspb.Message, "registerMessageType", jspb.Message.registerMessageType);
- jspb.Message.messageSetExtensions = {};
- jspb.Message.messageSetExtensionsBinary = {};
- jspb.Export = {};
- "object" === ( false ? undefined : _typeof(exports)) && (exports.Map = jspb.Map, exports.Message = jspb.Message, exports.BinaryReader = jspb.BinaryReader, exports.BinaryWriter = jspb.BinaryWriter, exports.ExtensionFieldInfo = jspb.ExtensionFieldInfo, exports.ExtensionFieldBinaryInfo = jspb.ExtensionFieldBinaryInfo, exports.exportSymbol = goog.exportSymbol, exports.inherits = goog.inherits, exports.object = {
- extend: goog.object.extend
- }, exports.typeOf = goog.typeOf);
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35)))
- /***/ }),
- /* 35 */
- /*!***********************************!*\
- !*** (webpack)/buildin/global.js ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- var g;
- // This works in non-strict mode
- g = (function() {
- return this;
- })();
- try {
- // This works if eval is allowed (see CSP)
- g = g || new Function("return this")();
- } catch (e) {
- // This works if the window reference is available
- if (typeof window === "object") g = window;
- }
- // g can still be undefined, but nothing to do about it...
- // We return undefined, instead of nothing here, so it's
- // easier to handle this case. if(!global) { ...}
- module.exports = g;
- /***/ }),
- /* 36 */
- /*!**********************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/grpc/base_pb.js ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("// source: base.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = __webpack_require__(/*! google-protobuf */ 34);\nvar goog = jspb;\nvar global = function () {\n return this || window || global || self || Function('return this')();\n}.call(null);\nvar google_protobuf_timestamp_pb = __webpack_require__(/*! google-protobuf/google/protobuf/timestamp_pb.js */ 37);\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.base.v1.CType', null, global);\ngoog.exportSymbol('proto.base.v1.ControlInfoList', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPoint', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPointInfo', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPointSimple', null, global);\ngoog.exportSymbol('proto.base.v1.CriterionType', null, global);\ngoog.exportSymbol('proto.base.v1.DefaultReply', null, global);\ngoog.exportSymbol('proto.base.v1.DefaultRequest', null, global);\ngoog.exportSymbol('proto.base.v1.ErrorCode', null, global);\ngoog.exportSymbol('proto.base.v1.GameGpsInfo', null, global);\ngoog.exportSymbol('proto.base.v1.IdRequest', null, global);\ngoog.exportSymbol('proto.base.v1.Image', null, global);\ngoog.exportSymbol('proto.base.v1.LoginSource', null, global);\ngoog.exportSymbol('proto.base.v1.MapRoute', null, global);\ngoog.exportSymbol('proto.base.v1.NetImage', null, global);\ngoog.exportSymbol('proto.base.v1.Position', null, global);\ngoog.exportSymbol('proto.base.v1.ProjectContentType', null, global);\ngoog.exportSymbol('proto.base.v1.Region', null, global);\ngoog.exportSymbol('proto.base.v1.ShopList', null, global);\ngoog.exportSymbol('proto.base.v1.ShopType', null, global);\ngoog.exportSymbol('proto.base.v1.SignInReply', null, global);\ngoog.exportSymbol('proto.base.v1.SmsType', null, global);\ngoog.exportSymbol('proto.base.v1.StatusEditRequest', null, global);\ngoog.exportSymbol('proto.base.v1.StatusType', null, global);\ngoog.exportSymbol('proto.base.v1.User', null, global);\ngoog.exportSymbol('proto.base.v1.User.Sex', null, global);\ngoog.exportSymbol('proto.base.v1.UserType', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.NetImage = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.NetImage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.NetImage.displayName = 'proto.base.v1.NetImage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.User = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.User.displayName = 'proto.base.v1.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.GameGpsInfo = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.GameGpsInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.GameGpsInfo.displayName = 'proto.base.v1.GameGpsInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.SignInReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.SignInReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.SignInReply.displayName = 'proto.base.v1.SignInReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.MapRoute = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.MapRoute, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.MapRoute.displayName = 'proto.base.v1.MapRoute';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Region = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Region, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Region.displayName = 'proto.base.v1.Region';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ShopList = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ShopList, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ShopList.displayName = 'proto.base.v1.ShopList';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlInfoList = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ControlInfoList, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlInfoList.displayName = 'proto.base.v1.ControlInfoList';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.DefaultReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.DefaultReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.DefaultReply.displayName = 'proto.base.v1.DefaultReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.IdRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.IdRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.IdRequest.displayName = 'proto.base.v1.IdRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.DefaultRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.DefaultRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.DefaultRequest.displayName = 'proto.base.v1.DefaultRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Position = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Position, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Position.displayName = 'proto.base.v1.Position';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPointInfo = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ControlPointInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPointInfo.displayName = 'proto.base.v1.ControlPointInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Image = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Image, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Image.displayName = 'proto.base.v1.Image';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.StatusEditRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.StatusEditRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.StatusEditRequest.displayName = 'proto.base.v1.StatusEditRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPoint = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.base.v1.ControlPoint.repeatedFields_, null);\n};\ngoog.inherits(proto.base.v1.ControlPoint, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPoint.displayName = 'proto.base.v1.ControlPoint';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPointSimple = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.base.v1.ControlPointSimple.repeatedFields_, null);\n};\ngoog.inherits(proto.base.v1.ControlPointSimple, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPointSimple.displayName = 'proto.base.v1.ControlPointSimple';\n}\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.NetImage.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.NetImage.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.NetImage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.NetImage.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n url: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n md5: msg.getMd5_asB64()\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.NetImage}\n */\nproto.base.v1.NetImage.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.NetImage();\n return proto.base.v1.NetImage.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.NetImage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.NetImage}\n */\nproto.base.v1.NetImage.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setUrl(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */reader.readBytes();\n msg.setMd5(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.NetImage.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.NetImage.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.NetImage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.NetImage.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUrl();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getMd5_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional string url = 1;\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getUrl = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.NetImage} returns this\n */\nproto.base.v1.NetImage.prototype.setUrl = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional bytes md5 = 2;\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getMd5 = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * optional bytes md5 = 2;\n * This is a type-conversion wrapper around `getMd5()`\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getMd5_asB64 = function () {\n return (/** @type {string} */jspb.Message.bytesAsB64(this.getMd5())\n );\n};\n\n/**\n * optional bytes md5 = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getMd5()`\n * @return {!Uint8Array}\n */\nproto.base.v1.NetImage.prototype.getMd5_asU8 = function () {\n return (/** @type {!Uint8Array} */jspb.Message.bytesAsU8(this.getMd5())\n );\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.base.v1.NetImage} returns this\n */\nproto.base.v1.NetImage.prototype.setMd5 = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.User.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.User.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.User.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.User}\n */\nproto.base.v1.User.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.User();\n return proto.base.v1.User.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.User}\n */\nproto.base.v1.User.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.User.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.User.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.User.Sex = {\n UNDEFINE: 0,\n MALE: 1,\n FEMALE: 2\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.GameGpsInfo.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.GameGpsInfo.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.GameGpsInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.GameGpsInfo.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n uptime: (f = msg.getUptime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n longitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),\n latitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),\n directionradian: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.GameGpsInfo}\n */\nproto.base.v1.GameGpsInfo.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.GameGpsInfo();\n return proto.base.v1.GameGpsInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.GameGpsInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.GameGpsInfo}\n */\nproto.base.v1.GameGpsInfo.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp();\n reader.readMessage(value, google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setUptime(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readDouble();\n msg.setLongitude(value);\n break;\n case 3:\n var value = /** @type {number} */reader.readDouble();\n msg.setLatitude(value);\n break;\n case 4:\n var value = /** @type {number} */reader.readDouble();\n msg.setDirectionradian(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.GameGpsInfo.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.GameGpsInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.GameGpsInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.GameGpsInfo.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUptime();\n if (f != null) {\n writer.writeMessage(1, f, google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter);\n }\n f = message.getLongitude();\n if (f !== 0.0) {\n writer.writeDouble(2, f);\n }\n f = message.getLatitude();\n if (f !== 0.0) {\n writer.writeDouble(3, f);\n }\n f = message.getDirectionradian();\n if (f !== 0.0) {\n writer.writeDouble(4, f);\n }\n};\n\n/**\n * optional google.protobuf.Timestamp upTime = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.base.v1.GameGpsInfo.prototype.getUptime = function () {\n return (/** @type{?proto.google.protobuf.Timestamp} */\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1)\n );\n};\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n*/\nproto.base.v1.GameGpsInfo.prototype.setUptime = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.clearUptime = function () {\n return this.setUptime(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.GameGpsInfo.prototype.hasUptime = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional double longitude = 2;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getLongitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setLongitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n/**\n * optional double latitude = 3;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getLatitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setLatitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n/**\n * optional double directionRadian = 4;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getDirectionradian = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setDirectionradian = function (value) {\n return jspb.Message.setProto3FloatField(this, 4, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.SignInReply.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.SignInReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.SignInReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.SignInReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n token: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.SignInReply}\n */\nproto.base.v1.SignInReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.SignInReply();\n return proto.base.v1.SignInReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.SignInReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.SignInReply}\n */\nproto.base.v1.SignInReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setToken(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.SignInReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.SignInReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.SignInReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.SignInReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getToken();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n};\n\n/**\n * optional string token = 1;\n * @return {string}\n */\nproto.base.v1.SignInReply.prototype.getToken = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.SignInReply} returns this\n */\nproto.base.v1.SignInReply.prototype.setToken = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.MapRoute.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.MapRoute.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.MapRoute} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.MapRoute.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n image: (f = msg.getImage()) && proto.base.v1.NetImage.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.MapRoute}\n */\nproto.base.v1.MapRoute.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.MapRoute();\n return proto.base.v1.MapRoute.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.MapRoute} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.MapRoute}\n */\nproto.base.v1.MapRoute.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n case 3:\n var value = new proto.base.v1.NetImage();\n reader.readMessage(value, proto.base.v1.NetImage.deserializeBinaryFromReader);\n msg.setImage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.MapRoute.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.MapRoute.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.MapRoute} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.MapRoute.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getImage();\n if (f != null) {\n writer.writeMessage(3, f, proto.base.v1.NetImage.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.MapRoute.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.MapRoute.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional NetImage image = 3;\n * @return {?proto.base.v1.NetImage}\n */\nproto.base.v1.MapRoute.prototype.getImage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, proto.base.v1.NetImage, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.base.v1.MapRoute} returns this\n*/\nproto.base.v1.MapRoute.prototype.setImage = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.clearImage = function () {\n return this.setImage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.MapRoute.prototype.hasImage = function () {\n return jspb.Message.getField(this, 3) != null;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Region.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Region.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Region} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Region.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n code: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Region}\n */\nproto.base.v1.Region.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Region();\n return proto.base.v1.Region.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Region} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Region}\n */\nproto.base.v1.Region.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setCode(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Region.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Region.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Region} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Region.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCode();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional string code = 1;\n * @return {string}\n */\nproto.base.v1.Region.prototype.getCode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Region} returns this\n */\nproto.base.v1.Region.prototype.setCode = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.Region.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Region} returns this\n */\nproto.base.v1.Region.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ShopList.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ShopList.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ShopList} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ShopList.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n shopid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ShopList}\n */\nproto.base.v1.ShopList.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ShopList();\n return proto.base.v1.ShopList.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ShopList} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ShopList}\n */\nproto.base.v1.ShopList.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setShopid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ShopList.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ShopList.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ShopList} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ShopList.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getShopid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional int32 shopId = 1;\n * @return {number}\n */\nproto.base.v1.ShopList.prototype.getShopid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ShopList} returns this\n */\nproto.base.v1.ShopList.prototype.setShopid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.ShopList.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ShopList} returns this\n */\nproto.base.v1.ShopList.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlInfoList.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlInfoList.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlInfoList} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlInfoList.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cicode: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.base.v1.ControlInfoList.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlInfoList();\n return proto.base.v1.ControlInfoList.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlInfoList} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.base.v1.ControlInfoList.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setCicode(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlInfoList.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlInfoList.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlInfoList} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlInfoList.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getCicode();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.base.v1.ControlInfoList.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlInfoList} returns this\n */\nproto.base.v1.ControlInfoList.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string ciCode = 2;\n * @return {string}\n */\nproto.base.v1.ControlInfoList.prototype.getCicode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlInfoList} returns this\n */\nproto.base.v1.ControlInfoList.prototype.setCicode = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.DefaultReply.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.DefaultReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.DefaultReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.DefaultReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.DefaultReply}\n */\nproto.base.v1.DefaultReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.DefaultReply();\n return proto.base.v1.DefaultReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.DefaultReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.DefaultReply}\n */\nproto.base.v1.DefaultReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.DefaultReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.DefaultReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.DefaultReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.DefaultReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.IdRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.IdRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.IdRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.IdRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.IdRequest}\n */\nproto.base.v1.IdRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.IdRequest();\n return proto.base.v1.IdRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.IdRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.IdRequest}\n */\nproto.base.v1.IdRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.IdRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.IdRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.IdRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.IdRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.IdRequest.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.IdRequest} returns this\n */\nproto.base.v1.IdRequest.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.DefaultRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.DefaultRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.DefaultRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.DefaultRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.DefaultRequest}\n */\nproto.base.v1.DefaultRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.DefaultRequest();\n return proto.base.v1.DefaultRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.DefaultRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.DefaultRequest}\n */\nproto.base.v1.DefaultRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.DefaultRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.DefaultRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.DefaultRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.DefaultRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Position.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Position.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Position} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Position.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n longitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n latitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Position}\n */\nproto.base.v1.Position.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Position();\n return proto.base.v1.Position.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Position} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Position}\n */\nproto.base.v1.Position.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readDouble();\n msg.setLongitude(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readDouble();\n msg.setLatitude(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Position.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Position.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Position} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Position.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getLongitude();\n if (f !== 0.0) {\n writer.writeDouble(1, f);\n }\n f = message.getLatitude();\n if (f !== 0.0) {\n writer.writeDouble(2, f);\n }\n};\n\n/**\n * optional double longitude = 1;\n * @return {number}\n */\nproto.base.v1.Position.prototype.getLongitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.Position} returns this\n */\nproto.base.v1.Position.prototype.setLongitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n/**\n * optional double latitude = 2;\n * @return {number}\n */\nproto.base.v1.Position.prototype.getLatitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.Position} returns this\n */\nproto.base.v1.Position.prototype.setLatitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPointInfo.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPointInfo.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPointInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPointInfo.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n image: (f = msg.getImage()) && proto.base.v1.NetImage.toObject(includeInstance, f),\n content: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPointInfo.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPointInfo();\n return proto.base.v1.ControlPointInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPointInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPointInfo.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.base.v1.NetImage();\n reader.readMessage(value, proto.base.v1.NetImage.deserializeBinaryFromReader);\n msg.setImage(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setContent(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPointInfo.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPointInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPointInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPointInfo.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getImage();\n if (f != null) {\n writer.writeMessage(1, f, proto.base.v1.NetImage.serializeBinaryToWriter);\n }\n f = message.getContent();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional NetImage image = 1;\n * @return {?proto.base.v1.NetImage}\n */\nproto.base.v1.ControlPointInfo.prototype.getImage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, proto.base.v1.NetImage, 1)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.base.v1.ControlPointInfo} returns this\n*/\nproto.base.v1.ControlPointInfo.prototype.setImage = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPointInfo} returns this\n */\nproto.base.v1.ControlPointInfo.prototype.clearImage = function () {\n return this.setImage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPointInfo.prototype.hasImage = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional string content = 2;\n * @return {string}\n */\nproto.base.v1.ControlPointInfo.prototype.getContent = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPointInfo} returns this\n */\nproto.base.v1.ControlPointInfo.prototype.setContent = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Image.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Image.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Image} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Image.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ext: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n data: msg.getData_asB64()\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Image}\n */\nproto.base.v1.Image.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Image();\n return proto.base.v1.Image.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Image} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Image}\n */\nproto.base.v1.Image.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setExt(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */reader.readBytes();\n msg.setData(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Image.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Image.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Image} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Image.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getExt();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional string ext = 1;\n * @return {string}\n */\nproto.base.v1.Image.prototype.getExt = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Image} returns this\n */\nproto.base.v1.Image.prototype.setExt = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional bytes data = 2;\n * @return {string}\n */\nproto.base.v1.Image.prototype.getData = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * optional bytes data = 2;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.base.v1.Image.prototype.getData_asB64 = function () {\n return (/** @type {string} */jspb.Message.bytesAsB64(this.getData())\n );\n};\n\n/**\n * optional bytes data = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.base.v1.Image.prototype.getData_asU8 = function () {\n return (/** @type {!Uint8Array} */jspb.Message.bytesAsU8(this.getData())\n );\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.base.v1.Image} returns this\n */\nproto.base.v1.Image.prototype.setData = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.StatusEditRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.StatusEditRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.StatusEditRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.StatusEditRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n status: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.StatusEditRequest}\n */\nproto.base.v1.StatusEditRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.StatusEditRequest();\n return proto.base.v1.StatusEditRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.StatusEditRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.StatusEditRequest}\n */\nproto.base.v1.StatusEditRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {!proto.base.v1.StatusType} */reader.readEnum();\n msg.setStatus(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.StatusEditRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.StatusEditRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.StatusEditRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.StatusEditRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getStatus();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.StatusEditRequest.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.StatusEditRequest} returns this\n */\nproto.base.v1.StatusEditRequest.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional StatusType status = 2;\n * @return {!proto.base.v1.StatusType}\n */\nproto.base.v1.StatusEditRequest.prototype.getStatus = function () {\n return (/** @type {!proto.base.v1.StatusType} */jspb.Message.getFieldWithDefault(this, 2, 0)\n );\n};\n\n/**\n * @param {!proto.base.v1.StatusType} value\n * @return {!proto.base.v1.StatusEditRequest} returns this\n */\nproto.base.v1.StatusEditRequest.prototype.setStatus = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.base.v1.ControlPoint.repeatedFields_ = [3];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPoint.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPoint.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPoint} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPoint.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n info: (f = msg.getInfo()) && proto.base.v1.ControlPointInfo.toObject(includeInstance, f),\n nfcIdListList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,\n onMapX: jspb.Message.getFieldWithDefault(msg, 4, 0),\n onMapY: jspb.Message.getFieldWithDefault(msg, 5, 0),\n sn: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n ciposition: (f = msg.getCiposition()) && proto.base.v1.Position.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPoint}\n */\nproto.base.v1.ControlPoint.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPoint();\n return proto.base.v1.ControlPoint.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPoint} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPoint}\n */\nproto.base.v1.ControlPoint.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = new proto.base.v1.ControlPointInfo();\n reader.readMessage(value, proto.base.v1.ControlPointInfo.deserializeBinaryFromReader);\n msg.setInfo(value);\n break;\n case 3:\n var value = /** @type {string} */reader.readString();\n msg.addNfcIdList(value);\n break;\n case 4:\n var value = /** @type {number} */reader.readInt64();\n msg.setOnMapX(value);\n break;\n case 5:\n var value = /** @type {number} */reader.readInt64();\n msg.setOnMapY(value);\n break;\n case 6:\n var value = /** @type {string} */reader.readString();\n msg.setSn(value);\n break;\n case 7:\n var value = new proto.base.v1.Position();\n reader.readMessage(value, proto.base.v1.Position.deserializeBinaryFromReader);\n msg.setCiposition(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPoint.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPoint.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPoint} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPoint.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getInfo();\n if (f != null) {\n writer.writeMessage(2, f, proto.base.v1.ControlPointInfo.serializeBinaryToWriter);\n }\n f = message.getNfcIdListList();\n if (f.length > 0) {\n writer.writeRepeatedString(3, f);\n }\n f = message.getOnMapX();\n if (f !== 0) {\n writer.writeInt64(4, f);\n }\n f = message.getOnMapY();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getSn();\n if (f.length > 0) {\n writer.writeString(6, f);\n }\n f = message.getCiposition();\n if (f != null) {\n writer.writeMessage(7, f, proto.base.v1.Position.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional ControlPointInfo info = 2;\n * @return {?proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPoint.prototype.getInfo = function () {\n return (/** @type{?proto.base.v1.ControlPointInfo} */\n jspb.Message.getWrapperField(this, proto.base.v1.ControlPointInfo, 2)\n );\n};\n\n/**\n * @param {?proto.base.v1.ControlPointInfo|undefined} value\n * @return {!proto.base.v1.ControlPoint} returns this\n*/\nproto.base.v1.ControlPoint.prototype.setInfo = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearInfo = function () {\n return this.setInfo(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPoint.prototype.hasInfo = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * repeated string nfc_id_list = 3;\n * @return {!Array<string>}\n */\nproto.base.v1.ControlPoint.prototype.getNfcIdListList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 3)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setNfcIdListList = function (value) {\n return jspb.Message.setField(this, 3, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.addNfcIdList = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearNfcIdListList = function () {\n return this.setNfcIdListList([]);\n};\n\n/**\n * optional int64 on_map_x = 4;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getOnMapX = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 4, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setOnMapX = function (value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n/**\n * optional int64 on_map_y = 5;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getOnMapY = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 5, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setOnMapY = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional string sn = 6;\n * @return {string}\n */\nproto.base.v1.ControlPoint.prototype.getSn = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 6, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setSn = function (value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n/**\n * optional Position ciPosition = 7;\n * @return {?proto.base.v1.Position}\n */\nproto.base.v1.ControlPoint.prototype.getCiposition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, proto.base.v1.Position, 7)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.base.v1.ControlPoint} returns this\n*/\nproto.base.v1.ControlPoint.prototype.setCiposition = function (value) {\n return jspb.Message.setWrapperField(this, 7, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearCiposition = function () {\n return this.setCiposition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPoint.prototype.hasCiposition = function () {\n return jspb.Message.getField(this, 7) != null;\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.base.v1.ControlPointSimple.repeatedFields_ = [2];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPointSimple.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPointSimple.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPointSimple} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPointSimple.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n nfcIdListList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n sn: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPointSimple}\n */\nproto.base.v1.ControlPointSimple.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPointSimple();\n return proto.base.v1.ControlPointSimple.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPointSimple} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPointSimple}\n */\nproto.base.v1.ControlPointSimple.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.addNfcIdList(value);\n break;\n case 3:\n var value = /** @type {string} */reader.readString();\n msg.setSn(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPointSimple.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPointSimple.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPointSimple} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPointSimple.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getNfcIdListList();\n if (f.length > 0) {\n writer.writeRepeatedString(2, f);\n }\n f = message.getSn();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.ControlPointSimple.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * repeated string nfc_id_list = 2;\n * @return {!Array<string>}\n */\nproto.base.v1.ControlPointSimple.prototype.getNfcIdListList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 2)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setNfcIdListList = function (value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.addNfcIdList = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.clearNfcIdListList = function () {\n return this.setNfcIdListList([]);\n};\n\n/**\n * optional string sn = 3;\n * @return {string}\n */\nproto.base.v1.ControlPointSimple.prototype.getSn = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 3, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setSn = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ErrorCode = {\n OK: 0,\n TOKENEXPIRE: 1000,\n USERBAN: 1001,\n VFCODEEXPIRE: 1002,\n SMSSENDFAIL: 1003,\n USERSTATUSERR: 1008,\n STATUSERR: 1009,\n PHONENOTEXIST: 2001,\n UNKNOWNERR: 2002,\n PARAMERR: 5000,\n HEADSOURCEERR: 5001,\n DATABASE: 9000,\n NORECORD: 9001\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ShopType = {\n UNKNOWSHOP: 0,\n PARKSHOP: 1,\n IPSHOP: 2,\n ADMINSHOP: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.UserType = {\n UNDEFINE: 0,\n APPUSER: 1,\n PARKADMIN: 2,\n IPADMIN: 3,\n SYSADMIN: 4\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.LoginSource = {\n UNDEF: 0,\n USERAPP: 1,\n WEBADMIN: 2,\n SHOPAPP: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.SmsType = {\n UNKNOW: 0,\n LOGIN: 1,\n SIGNUP: 2\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ProjectContentType = {\n TEXT: 0,\n HTML: 1\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.CriterionType = {\n CRUNKNOW: 0,\n CRORDER: 1,\n CRNUM: 2\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.CType = {\n UNKNOWTYPE: 0,\n BEGINTYPE: 1,\n MIDDLETYPE: 2,\n ENDTYPE: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.StatusType = {\n UNKNOWSTATUS: 0,\n NORMALSTATUS: 1,\n DISABLEDSTATUS: 8,\n DELETESTATUS: 9\n};\ngoog.object.extend(exports, proto.base.v1);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9iYXNlX3BiLmpzIl0sIm5hbWVzIjpbImpzcGIiLCJyZXF1aXJlIiwiZ29vZyIsImdsb2JhbCIsIndpbmRvdyIsInNlbGYiLCJGdW5jdGlvbiIsImNhbGwiLCJnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiIiwib2JqZWN0IiwiZXh0ZW5kIiwicHJvdG8iLCJleHBvcnRTeW1ib2wiLCJiYXNlIiwidjEiLCJOZXRJbWFnZSIsIm9wdF9kYXRhIiwiTWVzc2FnZSIsImluaXRpYWxpemUiLCJpbmhlcml0cyIsIkRFQlVHIiwiQ09NUElMRUQiLCJkaXNwbGF5TmFtZSIsIlVzZXIiLCJHYW1lR3BzSW5mbyIsIlNpZ25JblJlcGx5IiwiTWFwUm91dGUiLCJSZWdpb24iLCJTaG9wTGlzdCIsIkNvbnRyb2xJbmZvTGlzdCIsIkRlZmF1bHRSZXBseSIsIklkUmVxdWVzdCIsIkRlZmF1bHRSZXF1ZXN0IiwiUG9zaXRpb24iLCJDb250cm9sUG9pbnRJbmZvIiwiSW1hZ2UiLCJTdGF0dXNFZGl0UmVxdWVzdCIsIkNvbnRyb2xQb2ludCIsInJlcGVhdGVkRmllbGRzXyIsIkNvbnRyb2xQb2ludFNpbXBsZSIsIkdFTkVSQVRFX1RPX09CSkVDVCIsInByb3RvdHlwZSIsInRvT2JqZWN0Iiwib3B0X2luY2x1ZGVJbnN0YW5jZSIsImluY2x1ZGVJbnN0YW5jZSIsIm1zZyIsImYiLCJvYmoiLCJ1cmwiLCJnZXRGaWVsZFdpdGhEZWZhdWx0IiwibWQ1IiwiZ2V0TWQ1X2FzQjY0IiwiJGpzcGJNZXNzYWdlSW5zdGFuY2UiLCJkZXNlcmlhbGl6ZUJpbmFyeSIsImJ5dGVzIiwicmVhZGVyIiwiQmluYXJ5UmVhZGVyIiwiZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyIiwibmV4dEZpZWxkIiwiaXNFbmRHcm91cCIsImZpZWxkIiwiZ2V0RmllbGROdW1iZXIiLCJ2YWx1ZSIsInJlYWRTdHJpbmciLCJzZXRVcmwiLCJyZWFkQnl0ZXMiLCJzZXRNZDUiLCJza2lwRmllbGQiLCJzZXJpYWxpemVCaW5hcnkiLCJ3cml0ZXIiLCJCaW5hcnlXcml0ZXIiLCJzZXJpYWxpemVCaW5hcnlUb1dyaXRlciIsImdldFJlc3VsdEJ1ZmZlciIsIm1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJnZXRVcmwiLCJsZW5ndGgiLCJ3cml0ZVN0cmluZyIsImdldE1kNV9hc1U4Iiwid3JpdGVCeXRlcyIsInNldFByb3RvM1N0cmluZ0ZpZWxkIiwiZ2V0TWQ1IiwiYnl0ZXNBc0I2NCIsImJ5dGVzQXNVOCIsInNldFByb3RvM0J5dGVzRmllbGQiLCJTZXgiLCJVTkRFRklORSIsIk1BTEUiLCJGRU1BTEUiLCJ1cHRpbWUiLCJnZXRVcHRpbWUiLCJUaW1lc3RhbXAiLCJsb25naXR1ZGUiLCJnZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCIsImxhdGl0dWRlIiwiZGlyZWN0aW9ucmFkaWFuIiwicmVhZE1lc3NhZ2UiLCJzZXRVcHRpbWUiLCJyZWFkRG91YmxlIiwic2V0TG9uZ2l0dWRlIiwic2V0TGF0aXR1ZGUiLCJzZXREaXJlY3Rpb25yYWRpYW4iLCJ3cml0ZU1lc3NhZ2UiLCJnZXRMb25naXR1ZGUiLCJ3cml0ZURvdWJsZSIsImdldExhdGl0dWRlIiwiZ2V0RGlyZWN0aW9ucmFkaWFuIiwiZ2V0V3JhcHBlckZpZWxkIiwic2V0V3JhcHBlckZpZWxkIiwiY2xlYXJVcHRpbWUiLCJoYXNVcHRpbWUiLCJnZXRGaWVsZCIsInNldFByb3RvM0Zsb2F0RmllbGQiLCJ0b2tlbiIsInNldFRva2VuIiwiZ2V0VG9rZW4iLCJpZCIsIm5hbWUiLCJpbWFnZSIsImdldEltYWdlIiwicmVhZEludDY0Iiwic2V0SWQiLCJzZXROYW1lIiwic2V0SW1hZ2UiLCJnZXRJZCIsIndyaXRlSW50NjQiLCJnZXROYW1lIiwic2V0UHJvdG8zSW50RmllbGQiLCJjbGVhckltYWdlIiwiaGFzSW1hZ2UiLCJjb2RlIiwic2V0Q29kZSIsImdldENvZGUiLCJzaG9waWQiLCJyZWFkSW50MzIiLCJzZXRTaG9waWQiLCJnZXRTaG9waWQiLCJ3cml0ZUludDMyIiwiY2lpZCIsImNpY29kZSIsInNldENpaWQiLCJzZXRDaWNvZGUiLCJnZXRDaWlkIiwiZ2V0Q2ljb2RlIiwiY29udGVudCIsInNldENvbnRlbnQiLCJnZXRDb250ZW50IiwiZXh0IiwiZGF0YSIsImdldERhdGFfYXNCNjQiLCJzZXRFeHQiLCJzZXREYXRhIiwiZ2V0RXh0IiwiZ2V0RGF0YV9hc1U4IiwiZ2V0RGF0YSIsInN0YXR1cyIsInJlYWRFbnVtIiwic2V0U3RhdHVzIiwiZ2V0U3RhdHVzIiwid3JpdGVFbnVtIiwic2V0UHJvdG8zRW51bUZpZWxkIiwiaW5mbyIsImdldEluZm8iLCJuZmNJZExpc3RMaXN0IiwiZ2V0UmVwZWF0ZWRGaWVsZCIsIm9uTWFwWCIsIm9uTWFwWSIsInNuIiwiY2lwb3NpdGlvbiIsImdldENpcG9zaXRpb24iLCJzZXRJbmZvIiwiYWRkTmZjSWRMaXN0Iiwic2V0T25NYXBYIiwic2V0T25NYXBZIiwic2V0U24iLCJzZXRDaXBvc2l0aW9uIiwiZ2V0TmZjSWRMaXN0TGlzdCIsIndyaXRlUmVwZWF0ZWRTdHJpbmciLCJnZXRPbk1hcFgiLCJnZXRPbk1hcFkiLCJnZXRTbiIsImNsZWFySW5mbyIsImhhc0luZm8iLCJzZXROZmNJZExpc3RMaXN0Iiwic2V0RmllbGQiLCJvcHRfaW5kZXgiLCJhZGRUb1JlcGVhdGVkRmllbGQiLCJjbGVhck5mY0lkTGlzdExpc3QiLCJjbGVhckNpcG9zaXRpb24iLCJoYXNDaXBvc2l0aW9uIiwiRXJyb3JDb2RlIiwiT0siLCJUT0tFTkVYUElSRSIsIlVTRVJCQU4iLCJWRkNPREVFWFBJUkUiLCJTTVNTRU5ERkFJTCIsIlVTRVJTVEFUVVNFUlIiLCJTVEFUVVNFUlIiLCJQSE9ORU5PVEVYSVNUIiwiVU5LTk9XTkVSUiIsIlBBUkFNRVJSIiwiSEVBRFNPVVJDRUVSUiIsIkRBVEFCQVNFIiwiTk9SRUNPUkQiLCJTaG9wVHlwZSIsIlVOS05PV1NIT1AiLCJQQVJLU0hPUCIsIklQU0hPUCIsIkFETUlOU0hPUCIsIlVzZXJUeXBlIiwiQVBQVVNFUiIsIlBBUktBRE1JTiIsIklQQURNSU4iLCJTWVNBRE1JTiIsIkxvZ2luU291cmNlIiwiVU5ERUYiLCJVU0VSQVBQIiwiV0VCQURNSU4iLCJTSE9QQVBQIiwiU21zVHlwZSIsIlVOS05PVyIsIkxPR0lOIiwiU0lHTlVQIiwiUHJvamVjdENvbnRlbnRUeXBlIiwiVEVYVCIsIkhUTUwiLCJDcml0ZXJpb25UeXBlIiwiQ1JVTktOT1ciLCJDUk9SREVSIiwiQ1JOVU0iLCJDVHlwZSIsIlVOS05PV1RZUEUiLCJCRUdJTlRZUEUiLCJNSURETEVUWVBFIiwiRU5EVFlQRSIsIlN0YXR1c1R5cGUiLCJVTktOT1dTVEFUVVMiLCJOT1JNQUxTVEFUVVMiLCJESVNBQkxFRFNUQVRVUyIsIkRFTEVURVNUQVRVUyIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxJQUFJLEdBQUdDLG1CQUFPLENBQUMseUJBQWlCLENBQUM7QUFDckMsSUFBSUMsSUFBSSxHQUFHRixJQUFJO0FBQ2YsSUFBSUcsTUFBTSxHQUFJLFlBQVc7RUFBRSxPQUFPLElBQUksSUFBSUMsTUFBTSxJQUFJRCxNQUFNLElBQUlFLElBQUksSUFBSUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO0FBQUUsQ0FBQyxDQUFFQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBRTlHLElBQUlDLDRCQUE0QixHQUFHUCxtQkFBTyxDQUFDLHlEQUFpRCxDQUFDO0FBQzdGQyxJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEVBQUVILDRCQUE0QixDQUFDO0FBQ3ZETixJQUFJLENBQUNVLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUVULE1BQU0sQ0FBQztBQUN0REQsSUFBSSxDQUFDVSxZQUFZLENBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFFVCxNQUFNLENBQUM7QUFDaEVELElBQUksQ0FB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LEVBQUUsQ0FBQyIsImZpbGUiOiIzNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNvdXJjZTogYmFzZS5wcm90b1xuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3XG4gKiBAZW5oYW5jZWFibGVcbiAqIEBzdXBwcmVzcyB7bWlzc2luZ1JlcXVpcmV9IHJlcG9ydHMgZXJyb3Igb24gaW1wbGljaXQgdHlwZSB1c2FnZXMuXG4gKiBAc3VwcHJlc3Mge21lc3NhZ2VDb252ZW50aW9uc30gSlMgQ29tcGlsZXIgcmVwb3J0cyBhbiBlcnJvciBpZiBhIHZhcmlhYmxlIG9yXG4gKiAgICAgZmllbGQgc3RhcnRzIHdpdGggJ01TR18nIGFuZCBpc24ndCBhIHRyYW5zbGF0YWJsZSBtZXNzYWdlLlxuICogQHB1YmxpY1xuICovXG4vLyBHRU5FUkFURUQgQ09ERSAtLSBETyBOT1QgRURJVCFcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuXG52YXIganNwYiA9IHJlcXVpcmUoJ2dvb2dsZS1wcm90b2J1ZicpO1xudmFyIGdvb2cgPSBqc3BiO1xudmFyIGdsb2JhbCA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMgfHwgd2luZG93IHx8IGdsb2JhbCB8fCBzZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7IH0pLmNhbGwobnVsbCk7XG5cbnZhciBnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiID0gcmVxdWlyZSgnZ29vZ2xlLXByb3RvYnVmL2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXBfcGIuanMnKTtcbmdvb2cub2JqZWN0LmV4dGVuZChwcm90bywgZ29vZ2xlX3Byb3RvYnVmX3RpbWVzdGFtcF9wYik7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5DVHlwZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8nLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkNyaXRlcmlvblR5cGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkVycm9yQ29kZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mbycsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5JZFJlcXVlc3QnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuSW1hZ2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTG9naW5Tb3VyY2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTWFwUm91dGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTmV0SW1hZ2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuUG9zaXRpb24nLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuUHJvamVjdENvbnRlbnRUeXBlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlJlZ2lvbicsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaG9wTGlzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaG9wVHlwZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaWduSW5SZXBseScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TbXNUeXBlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlN0YXR1c1R5cGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuVXNlcicsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Vc2VyLlNleCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Vc2VyVHlwZScsIG51bGwsIGdsb2JhbCk7XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLk5ldEltYWdlLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLk5ldEltYWdlJztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLlVzZXIgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Vc2VyLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5Vc2VyLmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuVXNlcic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mbyA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvJztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuU2lnbkluUmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5NYXBSb3V0ZSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuTWFwUm91dGUuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5NYXBSb3V0ZSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24gPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5SZWdpb24sIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLlJlZ2lvbi5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlJlZ2lvbic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5TaG9wTGlzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLlNob3BMaXN0LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5TaG9wTGlzdC5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlNob3BMaXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLklkUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuSWRSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QsIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QnO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuUG9zaXRpb24gPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Qb3NpdGlvbiwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuUG9zaXRpb24uZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5Qb3NpdGlvbic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbywganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8nO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5JbWFnZSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuSW1hZ2UuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5JbWFnZSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucmVwZWF0ZWRGaWVsZHNfLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQnO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5yZXBlYXRlZEZpZWxkc18sIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUsIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZSc7XG59XG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5OZXRJbWFnZS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHVybDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCBcIlwiKSxcbiAgICBtZDU6IG1zZy5nZXRNZDVfYXNCNjQoKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuTmV0SW1hZ2U7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLk5ldEltYWdlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRVcmwodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKHJlYWRlci5yZWFkQnl0ZXMoKSk7XG4gICAgICBtc2cuc2V0TWQ1KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0VXJsKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TWQ1X2FzVTgoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZUJ5dGVzKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIHVybCA9IDE7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLmdldFVybCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnNldFVybCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJ5dGVzIG1kNSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLmdldE1kNSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgbWQ1ID0gMjtcbiAqIFRoaXMgaXMgYSB0eXBlLWNvbnZlcnNpb24gd3JhcHBlciBhcm91bmQgYGdldE1kNSgpYFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLk5ldEltYWdlLnByb3RvdHlwZS5nZXRNZDVfYXNCNjQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmJ5dGVzQXNCNjQoXG4gICAgICB0aGlzLmdldE1kNSgpKSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgbWQ1ID0gMjtcbiAqIE5vdGUgdGhhdCBVaW50OEFycmF5IGlzIG5vdCBzdXBwb3J0ZWQgb24gYWxsIGJyb3dzZXJzLlxuICogQHNlZSBodHRwOi8vY2FuaXVzZS5jb20vVWludDhBcnJheVxuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0TWQ1KClgXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5wcm90b3R5cGUuZ2V0TWQ1X2FzVTggPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IVVpbnQ4QXJyYXl9ICovIChqc3BiLk1lc3NhZ2UuYnl0ZXNBc1U4KFxuICAgICAgdGhpcy5nZXRNZDUoKSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IShzdHJpbmd8VWludDhBcnJheSl9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnNldE1kNSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuVXNlci50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuVXNlcn0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcblxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Vc2VyfVxuICovXG5wcm90by5iYXNlLnYxLlVzZXIuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLlVzZXI7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlVzZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Vc2VyfSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuVXNlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuVXNlci5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Vc2VyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Vc2VyfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuVXNlci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbn07XG5cblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlVzZXIuU2V4ID0ge1xuICBVTkRFRklORTogMCxcbiAgTUFMRTogMSxcbiAgRkVNQUxFOiAyXG59O1xuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8udG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHVwdGltZTogKGYgPSBtc2cuZ2V0VXB0aW1lKCkpICYmIGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbG9uZ2l0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwLjApLFxuICAgIGxhdGl0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAzLCAwLjApLFxuICAgIGRpcmVjdGlvbnJhZGlhbjoganNwYi5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KG1zZywgNCwgMC4wKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb31cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuR2FtZUdwc0luZm87XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb31cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gbmV3IGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0VXB0aW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWREb3VibGUoKSk7XG4gICAgICBtc2cuc2V0TG9uZ2l0dWRlKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWREb3VibGUoKSk7XG4gICAgICBtc2cuc2V0TGF0aXR1ZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZERvdWJsZSgpKTtcbiAgICAgIG1zZy5zZXREaXJlY3Rpb25yYWRpYW4odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb30gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRVcHRpbWUoKTtcbiAgaWYgKGYgIT0gbnVsbCkge1xuICAgIHdyaXRlci53cml0ZU1lc3NhZ2UoXG4gICAgICAxLFxuICAgICAgZixcbiAgICAgIGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRMb25naXR1ZGUoKTtcbiAgaWYgKGYgIT09IDAuMCkge1xuICAgIHdyaXRlci53cml0ZURvdWJsZShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRMYXRpdHVkZSgpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRG91YmxlKFxuICAgICAgMyxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldERpcmVjdGlvbnJhZGlhbigpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRG91YmxlKFxuICAgICAgNCxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCB1cFRpbWUgPSAxO1xuICogQHJldHVybiB7P3Byb3RvLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXB9XG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLmdldFVwdGltZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wfSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiLlRpbWVzdGFtcCwgMSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXB8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnNldFVwdGltZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuY2xlYXJVcHRpbWUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0VXB0aW1lKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuaGFzVXB0aW1lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMSkgIT0gbnVsbDtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgbG9uZ2l0dWRlID0gMjtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuZ2V0TG9uZ2l0dWRlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuc2V0TG9uZ2l0dWRlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgbGF0aXR1ZGUgPSAzO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnByb3RvdHlwZS5nZXRMYXRpdHVkZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQodGhpcywgMywgMC4wKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb30gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnNldExhdGl0dWRlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDMsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgZGlyZWN0aW9uUmFkaWFuID0gNDtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuZ2V0RGlyZWN0aW9ucmFkaWFuID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCA0LCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuc2V0RGlyZWN0aW9ucmFkaWFuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDQsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICB0b2tlbjoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCBcIlwiKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5TaWduSW5SZXBseS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHk7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU2lnbkluUmVwbHl9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5TaWduSW5SZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRUb2tlbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFRva2VuKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgdG9rZW4gPSAxO1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnByb3RvdHlwZS5nZXRUb2tlbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkucHJvdG90eXBlLnNldFRva2VuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLk1hcFJvdXRlLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMCksXG4gICAgbmFtZToganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCBcIlwiKSxcbiAgICBpbWFnZTogKGYgPSBtc2cuZ2V0SW1hZ2UoKSkgJiYgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS50b09iamVjdChpbmNsdWRlSW5zdGFuY2UsIGYpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfVxuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5NYXBSb3V0ZTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuTWFwUm91dGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfVxuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0SWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXROYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLHByb3RvLmJhc2UudjEuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRJbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuTWFwUm91dGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldElkKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TmFtZSgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldEltYWdlKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMyxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLk5ldEltYWdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNldE5hbWUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBOZXRJbWFnZSBpbWFnZSA9IDM7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0SW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgcHJvdG8uYmFzZS52MS5OZXRJbWFnZSwgMykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuTmV0SW1hZ2V8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNldEltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLnByb3RvdHlwZS5jbGVhckltYWdlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldEltYWdlKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuaGFzSW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAzKSAhPSBudWxsO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuUmVnaW9uLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBjb2RlOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIFwiXCIpLFxuICAgIG5hbWU6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgXCJcIilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuUmVnaW9ufVxuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuUmVnaW9uO1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5SZWdpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5SZWdpb259XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENvZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXROYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24ucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuUmVnaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldENvZGUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROYW1lKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgY29kZSA9IDE7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS5nZXRDb2RlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlJlZ2lvbn0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS5zZXRDb2RlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAyO1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5SZWdpb259IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5wcm90b3R5cGUuc2V0TmFtZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5TaG9wTGlzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU2hvcExpc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHNob3BpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuYW1lOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5iYXNlLnYxLlNob3BMaXN0LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5TaG9wTGlzdDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuU2hvcExpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5iYXNlLnYxLlNob3BMaXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0U2hvcGlkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuc2V0TmFtZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFNob3BpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldE5hbWUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHNob3BJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLmdldFNob3BpZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNldFNob3BpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5TaG9wTGlzdC5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNldE5hbWUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgY2lpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBjaWNvZGU6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgXCJcIilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0O1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENpY29kZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRDaWlkKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50MzIoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0Q2ljb2RlKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBpbnQzMiBjaUlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLmdldENpaWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLnNldENpaWQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgY2lDb2RlID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLmdldENpY29kZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5wcm90b3R5cGUuc2V0Q2ljb2RlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLklkUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMClcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuSWRSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5JZFJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9XG4gKi9cbnByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0SWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5JZFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0SWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQ2NChcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5JZFJlcXVlc3QucHJvdG90eXBlLmdldElkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdH0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlBvc2l0aW9uLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgbG9uZ2l0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwLjApLFxuICAgIGxhdGl0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwLjApXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbjtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuUG9zaXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkRG91YmxlKCkpO1xuICAgICAgbXNnLnNldExvbmdpdHVkZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkRG91YmxlKCkpO1xuICAgICAgbXNnLnNldExhdGl0dWRlKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuUG9zaXRpb259IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0TG9uZ2l0dWRlKCk7XG4gIGlmIChmICE9PSAwLjApIHtcbiAgICB3cml0ZXIud3JpdGVEb3VibGUoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TGF0aXR1ZGUoKTtcbiAgaWYgKGYgIT09IDAuMCkge1xuICAgIHdyaXRlci53cml0ZURvdWJsZShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGRvdWJsZSBsb25naXR1ZGUgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLnByb3RvdHlwZS5nZXRMb25naXR1ZGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDAuMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuUG9zaXRpb259IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLnByb3RvdHlwZS5zZXRMb25naXR1ZGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGRvdWJsZSBsYXRpdHVkZSA9IDI7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuUG9zaXRpb24ucHJvdG90eXBlLmdldExhdGl0dWRlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUuc2V0TGF0aXR1ZGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8udG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaW1hZ2U6IChmID0gbXNnLmdldEltYWdlKCkpICYmIHByb3RvLmJhc2UudjEuTmV0SW1hZ2UudG9PYmplY3QoaW5jbHVkZUluc3RhbmNlLCBmKSxcbiAgICBjb250ZW50OiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbztcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLHByb3RvLmJhc2UudjEuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRJbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENvbnRlbnQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb30gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldEltYWdlKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMSxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLk5ldEltYWdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRDb250ZW50KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBOZXRJbWFnZSBpbWFnZSA9IDE7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnByb3RvdHlwZS5nZXRJbWFnZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLk5ldEltYWdlfSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBwcm90by5iYXNlLnYxLk5ldEltYWdlLCAxKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZXx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfSByZXR1cm5zIHRoaXNcbiovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNldEltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb30gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUuY2xlYXJJbWFnZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRJbWFnZSh1bmRlZmluZWQpO1xufTtcblxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGZpZWxkIGlzIHNldC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUuaGFzSW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAxKSAhPSBudWxsO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBjb250ZW50ID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnByb3RvdHlwZS5nZXRDb250ZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDIsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNldENvbnRlbnQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuSW1hZ2UudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkltYWdlfSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBleHQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgXCJcIiksXG4gICAgZGF0YTogbXNnLmdldERhdGFfYXNCNjQoKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuSW1hZ2U7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkltYWdlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSW1hZ2V9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRFeHQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKHJlYWRlci5yZWFkQnl0ZXMoKSk7XG4gICAgICBtc2cuc2V0RGF0YSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuSW1hZ2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkltYWdlfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldEV4dCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldERhdGFfYXNVOCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlQnl0ZXMoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgZXh0ID0gMTtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5wcm90b3R5cGUuZ2V0RXh0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkltYWdlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5wcm90b3R5cGUuc2V0RXh0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgZGF0YSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLmdldERhdGEgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJ5dGVzIGRhdGEgPSAyO1xuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0RGF0YSgpYFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnByb3RvdHlwZS5nZXREYXRhX2FzQjY0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5ieXRlc0FzQjY0KFxuICAgICAgdGhpcy5nZXREYXRhKCkpKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBieXRlcyBkYXRhID0gMjtcbiAqIE5vdGUgdGhhdCBVaW50OEFycmF5IGlzIG5vdCBzdXBwb3J0ZWQgb24gYWxsIGJyb3dzZXJzLlxuICogQHNlZSBodHRwOi8vY2FuaXVzZS5jb20vVWludDhBcnJheVxuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0RGF0YSgpYFxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLmdldERhdGFfYXNVOCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKGpzcGIuTWVzc2FnZS5ieXRlc0FzVTgoXG4gICAgICB0aGlzLmdldERhdGEoKSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IShzdHJpbmd8VWludDhBcnJheSl9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLnNldERhdGEgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHN0YXR1czoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3Q7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7IXByb3RvLmJhc2UudjEuU3RhdHVzVHlwZX0gKi8gKHJlYWRlci5yZWFkRW51bSgpKTtcbiAgICAgIG1zZy5zZXRTdGF0dXModmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRJZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDY0KFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFN0YXR1cygpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRW51bShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIFN0YXR1c1R5cGUgc3RhdHVzID0gMjtcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlN0YXR1c1R5cGV9XG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QucHJvdG90eXBlLmdldFN0YXR1cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshcHJvdG8uYmFzZS52MS5TdGF0dXNUeXBlfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzVHlwZX0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5wcm90b3R5cGUuc2V0U3RhdHVzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cbi8qKlxuICogTGlzdCBvZiByZXBlYXRlZCBmaWVsZHMgd2l0aGluIHRoaXMgbWVzc2FnZSB0eXBlLlxuICogQHByaXZhdGUgeyFBcnJheTxudW1iZXI+fVxuICogQGNvbnN0XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnJlcGVhdGVkRmllbGRzXyA9IFszXTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIGluZm86IChmID0gbXNnLmdldEluZm8oKSkgJiYgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbmZjSWRMaXN0TGlzdDogKGYgPSBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZChtc2csIDMpKSA9PSBudWxsID8gdW5kZWZpbmVkIDogZixcbiAgICBvbk1hcFg6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgNCwgMCksXG4gICAgb25NYXBZOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDUsIDApLFxuICAgIHNuOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDYsIFwiXCIpLFxuICAgIGNpcG9zaXRpb246IChmID0gbXNnLmdldENpcG9zaXRpb24oKSkgJiYgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbi50b09iamVjdChpbmNsdWRlSW5zdGFuY2UsIGYpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm87XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUscHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0SW5mbyh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLmFkZE5mY0lkTGlzdCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDQ6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0T25NYXBYKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQ2NCgpKTtcbiAgICAgIG1zZy5zZXRPbk1hcFkodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA2OlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRTbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDc6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbjtcbiAgICAgIHJlYWRlci5yZWFkTWVzc2FnZSh2YWx1ZSxwcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0Q2lwb3NpdGlvbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRJZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDY0KFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldEluZm8oKTtcbiAgaWYgKGYgIT0gbnVsbCkge1xuICAgIHdyaXRlci53cml0ZU1lc3NhZ2UoXG4gICAgICAyLFxuICAgICAgZixcbiAgICAgIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TmZjSWRMaXN0TGlzdCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlUmVwZWF0ZWRTdHJpbmcoXG4gICAgICAzLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0T25NYXBYKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICA0LFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0T25NYXBZKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICA1LFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0U24oKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDYsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRDaXBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgNyxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldElkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIENvbnRyb2xQb2ludEluZm8gaW5mbyA9IDI7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0SW5mbyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbywgMikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb3x1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRJbmZvID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmNsZWFySW5mbyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRJbmZvKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmhhc0luZm8gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAyKSAhPSBudWxsO1xufTtcblxuXG4vKipcbiAqIHJlcGVhdGVkIHN0cmluZyBuZmNfaWRfbGlzdCA9IDM7XG4gKiBAcmV0dXJuIHshQXJyYXk8c3RyaW5nPn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldE5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IUFycmF5PHN0cmluZz59ICovIChqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0aGlzLCAzKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshQXJyYXk8c3RyaW5nPn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXROZmNJZExpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZCh0aGlzLCAzLCB2YWx1ZSB8fCBbXSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmFkZE5mY0lkTGlzdCA9IGZ1bmN0aW9uKHZhbHVlLCBvcHRfaW5kZXgpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQodGhpcywgMywgdmFsdWUsIG9wdF9pbmRleCk7XG59O1xuXG5cbi8qKlxuICogQ2xlYXJzIHRoZSBsaXN0IG1ha2luZyBpdCBlbXB0eSBidXQgbm9uLW51bGwuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuY2xlYXJOZmNJZExpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldE5mY0lkTGlzdExpc3QoW10pO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IG9uX21hcF94ID0gNDtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldE9uTWFwWCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCA0LCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuc2V0T25NYXBYID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCA0LCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50NjQgb25fbWFwX3kgPSA1O1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0T25NYXBZID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDUsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRPbk1hcFkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDUsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgc24gPSA2O1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0U24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgNiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLnNldFNuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCA2LCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgUG9zaXRpb24gY2lQb3NpdGlvbiA9IDc7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldENpcG9zaXRpb24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbiwgNykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb258dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuc2V0Q2lwb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDcsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5jbGVhckNpcG9zaXRpb24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0Q2lwb3NpdGlvbih1bmRlZmluZWQpO1xufTtcblxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGZpZWxkIGlzIHNldC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5oYXNDaXBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgNykgIT0gbnVsbDtcbn07XG5cblxuXG4vKipcbiAqIExpc3Qgb2YgcmVwZWF0ZWQgZmllbGRzIHdpdGhpbiB0aGlzIG1lc3NhZ2UgdHlwZS5cbiAqIEBwcml2YXRlIHshQXJyYXk8bnVtYmVyPn1cbiAqIEBjb25zdFxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5yZXBlYXRlZEZpZWxkc18gPSBbMl07XG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGV9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuZmNJZExpc3RMaXN0OiAoZiA9IGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKG1zZywgMikpID09IG51bGwgPyB1bmRlZmluZWQgOiBmLFxuICAgIHNuOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDMsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuYWRkTmZjSWRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuc2V0U24odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0SWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQ2NChcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNJZExpc3RMaXN0KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVSZXBlYXRlZFN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRTbigpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMyxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50NjQgaWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLnNldElkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgc3RyaW5nIG5mY19pZF9saXN0ID0gMjtcbiAqIEByZXR1cm4geyFBcnJheTxzdHJpbmc+fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuZ2V0TmZjSWRMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshQXJyYXk8c3RyaW5nPn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKHRoaXMsIDIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFBcnJheTxzdHJpbmc+fSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLnNldE5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkKHRoaXMsIDIsIHZhbHVlIHx8IFtdKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X2luZGV4XG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuYWRkTmZjSWRMaXN0ID0gZnVuY3Rpb24odmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRGaWVsZCh0aGlzLCAyLCB2YWx1ZSwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS5jbGVhck5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0TmZjSWRMaXN0TGlzdChbXSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIHNuID0gMztcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLmdldFNuID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDMsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS5zZXRTbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuRXJyb3JDb2RlID0ge1xuICBPSzogMCxcbiAgVE9LRU5FWFBJUkU6IDEwMDAsXG4gIFVTRVJCQU46IDEwMDEsXG4gIFZGQ09ERUVYUElSRTogMTAwMixcbiAgU01TU0VOREZBSUw6IDEwMDMsXG4gIFVTRVJTVEFUVVNFUlI6IDEwMDgsXG4gIFNUQVRVU0VSUjogMTAwOSxcbiAgUEhPTkVOT1RFWElTVDogMjAwMSxcbiAgVU5LTk9XTkVSUjogMjAwMixcbiAgUEFSQU1FUlI6IDUwMDAsXG4gIEhFQURTT1VSQ0VFUlI6IDUwMDEsXG4gIERBVEFCQVNFOiA5MDAwLFxuICBOT1JFQ09SRDogOTAwMVxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlNob3BUeXBlID0ge1xuICBVTktOT1dTSE9QOiAwLFxuICBQQVJLU0hPUDogMSxcbiAgSVBTSE9QOiAyLFxuICBBRE1JTlNIT1A6IDNcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyVHlwZSA9IHtcbiAgVU5ERUZJTkU6IDAsXG4gIEFQUFVTRVI6IDEsXG4gIFBBUktBRE1JTjogMixcbiAgSVBBRE1JTjogMyxcbiAgU1lTQURNSU46IDRcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Mb2dpblNvdXJjZSA9IHtcbiAgVU5ERUY6IDAsXG4gIFVTRVJBUFA6IDEsXG4gIFdFQkFETUlOOiAyLFxuICBTSE9QQVBQOiAzXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuU21zVHlwZSA9IHtcbiAgVU5LTk9XOiAwLFxuICBMT0dJTjogMSxcbiAgU0lHTlVQOiAyXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuUHJvamVjdENvbnRlbnRUeXBlID0ge1xuICBURVhUOiAwLFxuICBIVE1MOiAxXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuQ3JpdGVyaW9uVHlwZSA9IHtcbiAgQ1JVTktOT1c6IDAsXG4gIENST1JERVI6IDEsXG4gIENSTlVNOiAyXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuQ1R5cGUgPSB7XG4gIFVOS05PV1RZUEU6IDAsXG4gIEJFR0lOVFlQRTogMSxcbiAgTUlERExFVFlQRTogMixcbiAgRU5EVFlQRTogM1xufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c1R5cGUgPSB7XG4gIFVOS05PV1NUQVRVUzogMCxcbiAgTk9STUFMU1RBVFVTOiAxLFxuICBESVNBQkxFRFNUQVRVUzogOCxcbiAgREVMRVRFU1RBVFVTOiA5XG59O1xuXG5nb29nLm9iamVjdC5leHRlbmQoZXhwb3J0cywgcHJvdG8uYmFzZS52MSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n");
- /***/ }),
- /* 37 */
- /*!*******************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/node_modules/google-protobuf/google/protobuf/timestamp_pb.js ***!
- \*******************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- // source: google/protobuf/timestamp.proto
- /**
- * @fileoverview
- * @enhanceable
- * @suppress {missingRequire} reports error on implicit type usages.
- * @suppress {messageConventions} JS Compiler reports an error if a variable or
- * field starts with 'MSG_' and isn't a translatable message.
- * @public
- */
- // GENERATED CODE -- DO NOT EDIT!
- /* eslint-disable */
- // @ts-nocheck
- var jspb = __webpack_require__(/*! google-protobuf */ 34);
- var goog = jspb;
- var global = typeof globalThis !== 'undefined' && globalThis || typeof window !== 'undefined' && window || typeof global !== 'undefined' && global || typeof self !== 'undefined' && self || function () {
- return this;
- }.call(null) || Function('return this')();
- goog.exportSymbol('proto.google.protobuf.Timestamp', null, global);
- /**
- * Generated by JsPbCodeGenerator.
- * @param {Array=} opt_data Optional initial data array, typically from a
- * server response, or constructed directly in Javascript. The array is used
- * in place and becomes part of the constructed object. It is not cloned.
- * If no data is provided, the constructed object will be empty, but still
- * valid.
- * @extends {jspb.Message}
- * @constructor
- */
- proto.google.protobuf.Timestamp = function (opt_data) {
- jspb.Message.initialize(this, opt_data, 0, -1, null, null);
- };
- goog.inherits(proto.google.protobuf.Timestamp, jspb.Message);
- if (goog.DEBUG && !COMPILED) {
- /**
- * @public
- * @override
- */
- proto.google.protobuf.Timestamp.displayName = 'proto.google.protobuf.Timestamp';
- }
- if (jspb.Message.GENERATE_TO_OBJECT) {
- /**
- * Creates an object representation of this proto.
- * Field names that are reserved in JavaScript and will be renamed to pb_name.
- * Optional fields that are not set will be set to undefined.
- * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
- * For the list of reserved names please see:
- * net/proto2/compiler/js/internal/generator.cc#kKeyword.
- * @param {boolean=} opt_includeInstance Deprecated. whether to include the
- * JSPB instance for transitional soy proto support:
- * http://goto/soy-param-migration
- * @return {!Object}
- */
- proto.google.protobuf.Timestamp.prototype.toObject = function (opt_includeInstance) {
- return proto.google.protobuf.Timestamp.toObject(opt_includeInstance, this);
- };
- /**
- * Static version of the {@see toObject} method.
- * @param {boolean|undefined} includeInstance Deprecated. Whether to include
- * the JSPB instance for transitional soy proto support:
- * http://goto/soy-param-migration
- * @param {!proto.google.protobuf.Timestamp} msg The msg instance to transform.
- * @return {!Object}
- * @suppress {unusedLocalVariables} f is only used for nested messages
- */
- proto.google.protobuf.Timestamp.toObject = function (includeInstance, msg) {
- var f,
- obj = {
- seconds: jspb.Message.getFieldWithDefault(msg, 1, 0),
- nanos: jspb.Message.getFieldWithDefault(msg, 2, 0)
- };
- if (includeInstance) {
- obj.$jspbMessageInstance = msg;
- }
- return obj;
- };
- }
- /**
- * Deserializes binary data (in protobuf wire format).
- * @param {jspb.ByteSource} bytes The bytes to deserialize.
- * @return {!proto.google.protobuf.Timestamp}
- */
- proto.google.protobuf.Timestamp.deserializeBinary = function (bytes) {
- var reader = new jspb.BinaryReader(bytes);
- var msg = new proto.google.protobuf.Timestamp();
- return proto.google.protobuf.Timestamp.deserializeBinaryFromReader(msg, reader);
- };
- /**
- * Deserializes binary data (in protobuf wire format) from the
- * given reader into the given message object.
- * @param {!proto.google.protobuf.Timestamp} msg The message object to deserialize into.
- * @param {!jspb.BinaryReader} reader The BinaryReader to use.
- * @return {!proto.google.protobuf.Timestamp}
- */
- proto.google.protobuf.Timestamp.deserializeBinaryFromReader = function (msg, reader) {
- while (reader.nextField()) {
- if (reader.isEndGroup()) {
- break;
- }
- var field = reader.getFieldNumber();
- switch (field) {
- case 1:
- var value = /** @type {number} */reader.readInt64();
- msg.setSeconds(value);
- break;
- case 2:
- var value = /** @type {number} */reader.readInt32();
- msg.setNanos(value);
- break;
- default:
- reader.skipField();
- break;
- }
- }
- return msg;
- };
- /**
- * Serializes the message to binary data (in protobuf wire format).
- * @return {!Uint8Array}
- */
- proto.google.protobuf.Timestamp.prototype.serializeBinary = function () {
- var writer = new jspb.BinaryWriter();
- proto.google.protobuf.Timestamp.serializeBinaryToWriter(this, writer);
- return writer.getResultBuffer();
- };
- /**
- * Serializes the given message to binary data (in protobuf wire
- * format), writing to the given BinaryWriter.
- * @param {!proto.google.protobuf.Timestamp} message
- * @param {!jspb.BinaryWriter} writer
- * @suppress {unusedLocalVariables} f is only used for nested messages
- */
- proto.google.protobuf.Timestamp.serializeBinaryToWriter = function (message, writer) {
- var f = undefined;
- f = message.getSeconds();
- if (f !== 0) {
- writer.writeInt64(1, f);
- }
- f = message.getNanos();
- if (f !== 0) {
- writer.writeInt32(2, f);
- }
- };
- /**
- * optional int64 seconds = 1;
- * @return {number}
- */
- proto.google.protobuf.Timestamp.prototype.getSeconds = function () {
- return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)
- );
- };
- /**
- * @param {number} value
- * @return {!proto.google.protobuf.Timestamp} returns this
- */
- proto.google.protobuf.Timestamp.prototype.setSeconds = function (value) {
- return jspb.Message.setProto3IntField(this, 1, value);
- };
- /**
- * optional int32 nanos = 2;
- * @return {number}
- */
- proto.google.protobuf.Timestamp.prototype.getNanos = function () {
- return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 2, 0)
- );
- };
- /**
- * @param {number} value
- * @return {!proto.google.protobuf.Timestamp} returns this
- */
- proto.google.protobuf.Timestamp.prototype.setNanos = function (value) {
- return jspb.Message.setProto3IntField(this, 2, value);
- };
- goog.object.extend(exports, proto.google.protobuf);
- /* This code will be inserted into generated code for
- * google/protobuf/timestamp.proto. */
- /**
- * Returns a JavaScript 'Date' object corresponding to this Timestamp.
- * @return {!Date}
- */
- proto.google.protobuf.Timestamp.prototype.toDate = function () {
- var seconds = this.getSeconds();
- var nanos = this.getNanos();
- return new Date(seconds * 1000 + nanos / 1000000);
- };
- /**
- * Sets the value of this Timestamp object to be the given Date.
- * @param {!Date} value The value to set.
- */
- proto.google.protobuf.Timestamp.prototype.fromDate = function (value) {
- this.setSeconds(Math.floor(value.getTime() / 1000));
- this.setNanos(value.getMilliseconds() * 1000000);
- };
- /**
- * Factory method that returns a Timestamp object with value equal to
- * the given Date.
- * @param {!Date} value The value to set.
- * @return {!proto.google.protobuf.Timestamp}
- */
- proto.google.protobuf.Timestamp.fromDate = function (value) {
- var timestamp = new proto.google.protobuf.Timestamp();
- timestamp.fromDate(value);
- return timestamp;
- };
- /***/ }),
- /* 38 */
- /*!*************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/node_modules/base-64/base64.js ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
- /*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */
- ;
- (function (root) {
- // Detect free variables `exports`.
- var freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;
- // Detect free variable `module`.
- var freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;
- // Detect free variable `global`, from Node.js or Browserified code, and use
- // it as `root`.
- var freeGlobal = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global;
- if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
- root = freeGlobal;
- }
- /*--------------------------------------------------------------------------*/
- var InvalidCharacterError = function InvalidCharacterError(message) {
- this.message = message;
- };
- InvalidCharacterError.prototype = new Error();
- InvalidCharacterError.prototype.name = 'InvalidCharacterError';
- var error = function error(message) {
- // Note: the error messages used throughout this file match those used by
- // the native `atob`/`btoa` implementation in Chromium.
- throw new InvalidCharacterError(message);
- };
- var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
- // http://whatwg.org/html/common-microsyntaxes.html#space-character
- var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g;
- // `decode` is designed to be fully compatible with `atob` as described in the
- // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob
- // The optimized base64-decoding algorithm used is based on @atk’s excellent
- // implementation. https://gist.github.com/atk/1020396
- var decode = function decode(input) {
- input = String(input).replace(REGEX_SPACE_CHARACTERS, '');
- var length = input.length;
- if (length % 4 == 0) {
- input = input.replace(/==?$/, '');
- length = input.length;
- }
- if (length % 4 == 1 ||
- // http://whatwg.org/C#alphanumeric-ascii-characters
- /[^+a-zA-Z0-9/]/.test(input)) {
- error('Invalid character: the string to be decoded is not correctly encoded.');
- }
- var bitCounter = 0;
- var bitStorage;
- var buffer;
- var output = '';
- var position = -1;
- while (++position < length) {
- buffer = TABLE.indexOf(input.charAt(position));
- bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;
- // Unless this is the first of a group of 4 characters…
- if (bitCounter++ % 4) {
- // …convert the first 8 bits to a single ASCII character.
- output += String.fromCharCode(0xFF & bitStorage >> (-2 * bitCounter & 6));
- }
- }
- return output;
- };
- // `encode` is designed to be fully compatible with `btoa` as described in the
- // HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa
- var encode = function encode(input) {
- input = String(input);
- if (/[^\0-\xFF]/.test(input)) {
- // Note: no need to special-case astral symbols here, as surrogates are
- // matched, and the input is supposed to only contain ASCII anyway.
- error('The string to be encoded contains characters outside of the ' + 'Latin1 range.');
- }
- var padding = input.length % 3;
- var output = '';
- var position = -1;
- var a;
- var b;
- var c;
- var buffer;
- // Make sure any padding is handled outside of the loop.
- var length = input.length - padding;
- while (++position < length) {
- // Read three bytes, i.e. 24 bits.
- a = input.charCodeAt(position) << 16;
- b = input.charCodeAt(++position) << 8;
- c = input.charCodeAt(++position);
- buffer = a + b + c;
- // Turn the 24 bits into four chunks of 6 bits each, and append the
- // matching character for each of them to the output.
- output += TABLE.charAt(buffer >> 18 & 0x3F) + TABLE.charAt(buffer >> 12 & 0x3F) + TABLE.charAt(buffer >> 6 & 0x3F) + TABLE.charAt(buffer & 0x3F);
- }
- if (padding == 2) {
- a = input.charCodeAt(position) << 8;
- b = input.charCodeAt(++position);
- buffer = a + b;
- output += TABLE.charAt(buffer >> 10) + TABLE.charAt(buffer >> 4 & 0x3F) + TABLE.charAt(buffer << 2 & 0x3F) + '=';
- } else if (padding == 1) {
- buffer = input.charCodeAt(position);
- output += TABLE.charAt(buffer >> 2) + TABLE.charAt(buffer << 4 & 0x3F) + '==';
- }
- return output;
- };
- var base64 = {
- 'encode': encode,
- 'decode': decode,
- 'version': '1.0.0'
- };
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if ( true && _typeof(__webpack_require__(/*! !webpack amd options */ 40)) == 'object' && __webpack_require__(/*! !webpack amd options */ 40)) {
- !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
- return base64;
- }).call(exports, __webpack_require__, exports, module),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if (freeExports && !freeExports.nodeType) {
- if (freeModule) {
- // in Node.js or RingoJS v0.8.0+
- freeModule.exports = base64;
- } else {
- // in Narwhal or RingoJS v0.7.0-
- for (var key in base64) {
- base64.hasOwnProperty(key) && (freeExports[key] = base64[key]);
- }
- }
- } else {
- // in Rhino or a web browser
- root.base64 = base64;
- }
- })(this);
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/module.js */ 39)(module), __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35)))
- /***/ }),
- /* 39 */
- /*!***********************************!*\
- !*** (webpack)/buildin/module.js ***!
- \***********************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = function(module) {
- if (!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- if (!module.children) module.children = [];
- Object.defineProperty(module, "loaded", {
- enumerable: true,
- get: function() {
- return module.l;
- }
- });
- Object.defineProperty(module, "id", {
- enumerable: true,
- get: function() {
- return module.i;
- }
- });
- module.webpackPolyfill = 1;
- }
- return module;
- };
- /***/ }),
- /* 40 */
- /*!****************************************!*\
- !*** (webpack)/buildin/amd-options.js ***!
- \****************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */
- module.exports = __webpack_amd_options__;
- /* WEBPACK VAR INJECTION */}.call(this, {}))
- /***/ }),
- /* 41 */
- /*!**********************!*\
- !*** external "Vue" ***!
- \**********************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- module.exports = Vue;
- /***/ }),
- /* 42 */
- /*!**************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/App.vue ***!
- \**************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 43);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDOEs7QUFDOUssZ0JBQWdCLDJMQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcIkFwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///42\n");
- /***/ }),
- /* 43 */
- /*!***************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/App.vue?vue&type=script&lang=js& ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 44);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJrQixDQUFnQixpbkJBQUcsRUFBQyIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///43\n");
- /***/ }),
- /* 44 */
- /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/App.vue?vue&type=script&lang=js& ***!
- \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjQ0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIExhdW5jaCcpXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n");
- /***/ }),
- /* 45 */
- /*!**********************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/grpc/ass_api_grpc_web_pb.js ***!
- \**********************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- eval("/**\n * @fileoverview gRPC-Web generated client stub for ass.v1\n * @enhanceable\n * @public\n */\n\n// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-grpc-web v1.4.2\n// \tprotoc v3.20.3\n// source: ass_api.proto\n\n/* eslint-disable */\n// @ts-nocheck\n\nvar grpc = {};\ngrpc.web = __webpack_require__(/*! grpc-web */ 46);\nvar base_pb = __webpack_require__(/*! ./base_pb.js */ 36);\nvar proto = {};\nproto.ass = {};\nproto.ass.v1 = __webpack_require__(/*! ./ass_api_pb.js */ 33);\n\n/**\n * @param {string} hostname\n * @param {?Object} credentials\n * @param {?grpc.web.ClientOptions} options\n * @constructor\n * @struct\n * @final\n */\nproto.ass.v1.ApiAssClient = function (hostname, credentials, options) {\n if (!options) options = {};\n options.format = 'text';\n\n /**\n * @private @const {!grpc.web.GrpcWebClientBase} The client\n */\n this.client_ = new grpc.web.GrpcWebClientBase(options);\n\n /**\n * @private @const {string} The hostname\n */\n this.hostname_ = hostname.replace(/\\/+$/, '');\n};\n\n/**\n * @param {string} hostname\n * @param {?Object} credentials\n * @param {?grpc.web.ClientOptions} options\n * @constructor\n * @struct\n * @final\n */\nproto.ass.v1.ApiAssPromiseClient = function (hostname, credentials, options) {\n if (!options) options = {};\n options.format = 'text';\n\n /**\n * @private @const {!grpc.web.GrpcWebClientBase} The client\n */\n this.client_ = new grpc.web.GrpcWebClientBase(options);\n\n /**\n * @private @const {string} The hostname\n */\n this.hostname_ = hostname.replace(/\\/+$/, '');\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.DefaultRequest,\n * !proto.ass.v1.AssShopListReply>}\n */\nvar methodDescriptor_ApiAss_AssShopList = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssShopList', grpc.web.MethodType.UNARY, base_pb.DefaultRequest, proto.ass.v1.AssShopListReply,\n/**\n * @param {!proto.base.v1.DefaultRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssShopListReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.DefaultRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssShopListReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssShopListReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assShopList = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssShopList', request, metadata || {}, methodDescriptor_ApiAss_AssShopList, callback);\n};\n\n/**\n * @param {!proto.base.v1.DefaultRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssShopListReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assShopList = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssShopList', request, metadata || {}, methodDescriptor_ApiAss_AssShopList);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssControlInfoListReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoList = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoList', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssControlInfoListReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssControlInfoListReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssControlInfoListReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssControlInfoListReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoList = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoList', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoList, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssControlInfoListReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoList = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoList', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoList);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssMapInfoDetailReply>}\n */\nvar methodDescriptor_ApiAss_AssMapInfoDetail = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssMapInfoDetail', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssMapInfoDetailReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssMapInfoDetailReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssMapInfoDetailReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssMapInfoDetailReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assMapInfoDetail = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssMapInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssMapInfoDetail, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssMapInfoDetailReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assMapInfoDetail = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssMapInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssMapInfoDetail);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssControlInfoDetailReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoDetail = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoDetail', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssControlInfoDetailReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssControlInfoDetailReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssControlInfoDetailReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssControlInfoDetailReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoDetail = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoDetail, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssControlInfoDetailReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoDetail = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoDetail);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssControlInfoSaveRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoSave = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoSave', grpc.web.MethodType.UNARY, proto.ass.v1.AssControlInfoSaveRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoSave = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoSave, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoSave = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoSave);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssControlInfoGpsSaveRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoGpsSave = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoGpsSave', grpc.web.MethodType.UNARY, proto.ass.v1.AssControlInfoGpsSaveRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoGpsSave = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoGpsSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoGpsSave, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoGpsSave = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoGpsSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoGpsSave);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssVerificationRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssVerification = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssVerification', grpc.web.MethodType.UNARY, proto.ass.v1.AssVerificationRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assVerification = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssVerification', request, metadata || {}, methodDescriptor_ApiAss_AssVerification, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assVerification = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssVerification', request, metadata || {}, methodDescriptor_ApiAss_AssVerification);\n};\nmodule.exports = proto.ass.v1;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9hc3NfYXBpX2dycGNfd2ViX3BiLmpzIl0sIm5hbWVzIjpbImdycGMiLCJ3ZWIiLCJyZXF1aXJlIiwiYmFzZV9wYiIsInByb3RvIiwiYXNzIiwidjEiLCJBcGlBc3NDbGllbnQiLCJob3N0bmFtZSIsImNyZWRlbnRpYWxzIiwib3B0aW9ucyIsImZvcm1hdCIsImNsaWVudF8iLCJHcnBjV2ViQ2xpZW50QmFzZSIsImhvc3RuYW1lXyIsInJlcGxhY2UiLCJBcGlBc3NQcm9taXNlQ2xpZW50IiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QiLCJNZXRob2REZXNjcmlwdG9yIiwiTWV0aG9kVHlwZSIsIlVOQVJZIiwiRGVmYXVsdFJlcXVlc3QiLCJBc3NTaG9wTGlzdFJlcGx5IiwicmVxdWVzdCIsInNlcmlhbGl6ZUJpbmFyeSIsImRlc2VyaWFsaXplQmluYXJ5IiwicHJvdG90eXBlIiwiYXNzU2hvcExpc3QiLCJtZXRhZGF0YSIsImNhbGxiYWNrIiwicnBjQ2FsbCIsInVuYXJ5Q2FsbCIsIm1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvTGlzdCIsIklkUmVxdWVzdCIsIkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5IiwiYXNzQ29udHJvbEluZm9MaXN0IiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzTWFwSW5mb0RldGFpbCIsIkFzc01hcEluZm9EZXRhaWxSZXBseSIsImFzc01hcEluZm9EZXRhaWwiLCJtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0RldGFpbCIsIkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkiLCJhc3NDb250cm9sSW5mb0RldGFpbCIsIm1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSIsIkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QiLCJEZWZhdWx0UmVwbHkiLCJhc3NDb250cm9sSW5mb1NhdmUiLCJtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUiLCJBc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0IiwiYXNzQ29udHJvbEluZm9HcHNTYXZlIiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uIiwiQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCIsImFzc1ZlcmlmaWNhdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBOztBQUlBLElBQU1BLElBQUksR0FBRyxDQUFDLENBQUM7QUFDZkEsSUFBSSxDQUFDQyxHQUFHLEdBQUdDLG1CQUFPLENBQUMsa0JBQVUsQ0FBQztBQUc5QixJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMsc0JBQWMsQ0FBQztBQUNyQyxJQUFNRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCQSxLQUFLLENBQUNDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDZEQsS0FBSyxDQUFDQyxHQUFHLENBQUNDLEVBQUUsR0FBR0osbUJBQU8sQ0FBQyx5QkFBaUIsQ0FBQzs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBRSxLQUFLLENBQUNDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxZQUFZLEdBQ3JCLFVBQVNDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUU7RUFDM0MsSUFBSSxDQUFDQSxPQUFPLEVBQUVBLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFDMUJBLE9BQU8sQ0FBQ0MsTUFBTSxHQUFHLE1BQU07O0VBRXZCO0FBQ0Y7QUFDQTtFQUNFLElBQUksQ0FBQ0MsT0FBTyxHQUFHLElBQUlaLElBQUksQ0FBQ0MsR0FBRyxDQUFDWSxpQkFBaUIsQ0FBQ0gsT0FBTyxDQUFDOztFQUV0RDtBQUNGO0FBQ0E7RUFDRSxJQUFJLENBQUNJLFNBQVMsR0FBR04sUUFBUSxDQUFDTyxPQUFPLENBQUMs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T0FBTyxFQUNQSyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQ2RxQix1Q0FBdUMsQ0FBQztBQUM5QyxDQUFDO0FBR0RHLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHakQsS0FBSyxDQUFDQyxHQUFHLENBQUNDLEVBQUUiLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgZ1JQQy1XZWIgZ2VuZXJhdGVkIGNsaWVudCBzdHViIGZvciBhc3MudjFcbiAqIEBlbmhhbmNlYWJsZVxuICogQHB1YmxpY1xuICovXG5cbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tZ3JwYy13ZWIuIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyBcdHByb3RvYy1nZW4tZ3JwYy13ZWIgdjEuNC4yXG4vLyBcdHByb3RvYyAgICAgICAgICAgICAgdjMuMjAuM1xuLy8gc291cmNlOiBhc3NfYXBpLnByb3RvXG5cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG5cblxuXG5jb25zdCBncnBjID0ge307XG5ncnBjLndlYiA9IHJlcXVpcmUoJ2dycGMtd2ViJyk7XG5cblxudmFyIGJhc2VfcGIgPSByZXF1aXJlKCcuL2Jhc2VfcGIuanMnKVxuY29uc3QgcHJvdG8gPSB7fTtcbnByb3RvLmFzcyA9IHt9O1xucHJvdG8uYXNzLnYxID0gcmVxdWlyZSgnLi9hc3NfYXBpX3BiLmpzJyk7XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcGFyYW0gez9PYmplY3R9IGNyZWRlbnRpYWxzXG4gKiBAcGFyYW0gez9ncnBjLndlYi5DbGllbnRPcHRpb25zfSBvcHRpb25zXG4gKiBAY29uc3RydWN0b3JcbiAqIEBzdHJ1Y3RcbiAqIEBmaW5hbFxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50ID1cbiAgICBmdW5jdGlvbihob3N0bmFtZSwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIG9wdGlvbnMuZm9ybWF0ID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZSBAY29uc3QgeyFncnBjLndlYi5HcnBjV2ViQ2xpZW50QmFzZX0gVGhlIGNsaWVudFxuICAgKi9cbiAgdGhpcy5jbGllbnRfID0gbmV3IGdycGMud2ViLkdycGNXZWJDbGllbnRCYXNlKG9wdGlvbnMpO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZSBAY29uc3Qge3N0cmluZ30gVGhlIGhvc3RuYW1lXG4gICAqL1xuICB0aGlzLmhvc3RuYW1lXyA9IGhvc3RuYW1lLnJlcGxhY2UoL1xcLyskLywgJycpO1xuXG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcGFyYW0gez9PYmplY3R9IGNyZWRlbnRpYWxzXG4gKiBAcGFyYW0gez9ncnBjLndlYi5DbGllbnRPcHRpb25zfSBvcHRpb25zXG4gKiBAY29uc3RydWN0b3JcbiAqIEBzdHJ1Y3RcbiAqIEBmaW5hbFxuICovXG5wcm90by5hc3MudjEuQXBpQXNzUHJvbWlzZUNsaWVudCA9XG4gICAgZnVuY3Rpb24oaG9zdG5hbWUsIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICBvcHRpb25zLmZvcm1hdCA9ICd0ZXh0JztcblxuICAvKipcbiAgICogQHByaXZhdGUgQGNvbnN0IHshZ3JwYy53ZWIuR3JwY1dlYkNsaWVudEJhc2V9IFRoZSBjbGllbnRcbiAgICovXG4gIHRoaXMuY2xpZW50XyA9IG5ldyBncnBjLndlYi5HcnBjV2ViQ2xpZW50QmFzZShvcHRpb25zKTtcblxuICAvKipcbiAgICogQHByaXZhdGUgQGNvbnN0IHtzdHJpbmd9IFRoZSBob3N0bmFtZVxuICAgKi9cbiAgdGhpcy5ob3N0bmFtZV8gPSBob3N0bmFtZS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcblxufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdCxcbiAqICAgIXByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5Pn1cbiAqL1xuY29uc3QgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc1Nob3BMaXN0JyxcbiAgZ3JwYy53ZWIuTWV0aG9kVHlwZS5VTkFSWSxcbiAgYmFzZV9wYi5EZWZhdWx0UmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeVxuKTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseSl9XG4gKiAgICAgY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uKGVycm9yLCByZXNwb25zZSlcbiAqIEByZXR1cm4geyFncnBjLndlYi5DbGllbnRSZWFkYWJsZVN0cmVhbTwhcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk+fHVuZGVmaW5lZH1cbiAqICAgICBUaGUgWEhSIE5vZGUgUmVhZGFibGUgU3RyZWFtXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NDbGllbnQucHJvdG90eXBlLmFzc1Nob3BMaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NTaG9wTGlzdCcsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NTaG9wTGlzdCxcbiAgICAgIGNhbGxiYWNrKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc1Nob3BMaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzU2hvcExpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYmFzZS52MS5JZFJlcXVlc3QsXG4gKiAgICFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0xpc3QgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvTGlzdCcsXG4gIGdycGMud2ViLk1ldGhvZFR5cGUuVU5BUlksXG4gIGJhc2VfcGIuSWRSZXF1ZXN0LFxuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkpfVxuICogICAgIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbihlcnJvciwgcmVzcG9uc2UpXG4gKiBAcmV0dXJuIHshZ3JwYy53ZWIuQ2xpZW50UmVhZGFibGVTdHJlYW08IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9MaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb0xpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9MaXN0LFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb0xpc3QgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8udW5hcnlDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb0xpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9MaXN0KTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LFxuICogICAhcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseT59XG4gKi9cbmNvbnN0IG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc01hcEluZm9EZXRhaWwgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc01hcEluZm9EZXRhaWwnLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBiYXNlX3BiLklkUmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseSxcbiAgLyoqXG4gICAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5Pnx1bmRlZmluZWR9XG4gKiAgICAgVGhlIFhIUiBOb2RlIFJlYWRhYmxlIFN0cmVhbVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50LnByb3RvdHlwZS5hc3NNYXBJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NNYXBJbmZvRGV0YWlsJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc01hcEluZm9EZXRhaWwsXG4gICAgICBjYWxsYmFjayk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPj19IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEByZXR1cm4geyFQcm9taXNlPCFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NNYXBJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzTWFwSW5mb0RldGFpbCcsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NNYXBJbmZvRGV0YWlsKTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LFxuICogICAhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0RldGFpbCA9IG5ldyBncnBjLndlYi5NZXRob2REZXNjcmlwdG9yKFxuICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9EZXRhaWwnLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBiYXNlX3BiLklkUmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnlcbik7XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKD9ncnBjLndlYi5ScGNFcnJvciwgP3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9EZXRhaWwgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhLCBjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnJwY0NhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvRGV0YWlsJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvRGV0YWlsLFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc0NvbnRyb2xJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9EZXRhaWwnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9EZXRhaWwpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QsXG4gKiAgICFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT59XG4gKi9cbmNvbnN0IG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSA9IG5ldyBncnBjLndlYi5NZXRob2REZXNjcmlwdG9yKFxuICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9TYXZlJyxcbiAgZ3JwYy53ZWIuTWV0aG9kVHlwZS5VTkFSWSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QsXG4gIGJhc2VfcGIuRGVmYXVsdFJlcGx5LFxuICAvKipcbiAgICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJlcXVlc3RcbiAgICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gICAqL1xuICBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgcmV0dXJuIHJlcXVlc3Quc2VyaWFsaXplQmluYXJ5KCk7XG4gIH0sXG4gIGJhc2VfcGIuRGVmYXVsdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSl9XG4gKiAgICAgY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uKGVycm9yLCByZXNwb25zZSlcbiAqIEByZXR1cm4geyFncnBjLndlYi5DbGllbnRSZWFkYWJsZVN0cmVhbTwhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fHVuZGVmaW5lZH1cbiAqICAgICBUaGUgWEhSIE5vZGUgUmVhZGFibGUgU3RyZWFtXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NDbGllbnQucHJvdG90eXBlLmFzc0NvbnRyb2xJbmZvU2F2ZSA9XG4gICAgZnVuY3Rpb24ocmVxdWVzdCwgbWV0YWRhdGEsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8ucnBjQ2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9TYXZlJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSxcbiAgICAgIGNhbGxiYWNrKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+PX0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHJldHVybiB7IVByb21pc2U8IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb1NhdmUgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8udW5hcnlDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb1NhdmUnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9TYXZlKTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LFxuICogICAhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZScsXG4gIGdycGMud2ViLk1ldGhvZFR5cGUuVU5BUlksXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LFxuICBiYXNlX3BiLkRlZmF1bHRSZXBseSxcbiAgLyoqXG4gICAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBiYXNlX3BiLkRlZmF1bHRSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeVxuKTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz59IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oP2dycGMud2ViLlJwY0Vycm9yLCA/cHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkpfVxuICogICAgIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbihlcnJvciwgcmVzcG9uc2UpXG4gKiBAcmV0dXJuIHshZ3JwYy53ZWIuQ2xpZW50UmVhZGFibGVTdHJlYW08IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pnx1bmRlZmluZWR9XG4gKiAgICAgVGhlIFhIUiBOb2RlIFJlYWRhYmxlIFN0cmVhbVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb0dwc1NhdmUgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhLCBjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnJwY0NhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZScsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUsXG4gICAgICBjYWxsYmFjayk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPj19IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEByZXR1cm4geyFQcm9taXNlPCFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT59XG4gKiAgICAgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzUHJvbWlzZUNsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9HcHNTYXZlID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9HcHNTYXZlJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZSk7XG59O1xuXG5cbi8qKlxuICogQGNvbnN0XG4gKiBAdHlwZSB7IWdycGMud2ViLk1ldGhvZERlc2NyaXB0b3I8XG4gKiAgICFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAqICAgIXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pn1cbiAqL1xuY29uc3QgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uID0gbmV3IGdycGMud2ViLk1ldGhvZERlc2NyaXB0b3IoXG4gICcvYXNzLnYxLkFwaUFzcy9Bc3NWZXJpZmljYXRpb24nLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAgYmFzZV9wYi5EZWZhdWx0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgYmFzZV9wYi5EZWZhdWx0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlcbik7XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKD9ncnBjLndlYi5ScGNFcnJvciwgP3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzVmVyaWZpY2F0aW9uID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NWZXJpZmljYXRpb24nLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uLFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc1ZlcmlmaWNhdGlvbiA9XG4gICAgZnVuY3Rpb24ocmVxdWVzdCwgbWV0YWRhdGEpIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy51bmFyeUNhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc1ZlcmlmaWNhdGlvbicsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NWZXJpZmljYXRpb24pO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHByb3RvLmFzcy52MTtcblxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n");
- /***/ }),
- /* 46 */
- /*!*************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/node_modules/grpc-web/index.js ***!
- \*************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global, __f__) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
- /*
- Copyright The Closure Library Authors.
- SPDX-License-Identifier: Apache-2.0
- */
- var n;
- function aa(a) {
- var b = 0;
- return function () {
- return b < a.length ? {
- done: !1,
- value: a[b++]
- } : {
- done: !0
- };
- };
- }
- var ba = "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) {
- a != Array.prototype && a != Object.prototype && (a[b] = c.value);
- };
- function ca(a) {
- a = ["object" == (typeof window === "undefined" ? "undefined" : _typeof(window)) && window, "object" == (typeof self === "undefined" ? "undefined" : _typeof(self)) && self, "object" == (typeof global === "undefined" ? "undefined" : _typeof(global)) && global, a];
- for (var b = 0; b < a.length; ++b) {
- var c = a[b];
- if (c && c.Math == Math) return c;
- }
- throw Error("Cannot find global object");
- }
- var r = ca(this);
- function t() {
- t = function t() {};
- r.Symbol || (r.Symbol = da);
- }
- function ea(a, b) {
- this.a = a;
- ba(this, "description", {
- configurable: !0,
- writable: !0,
- value: b
- });
- }
- ea.prototype.toString = function () {
- return this.a;
- };
- var da = function () {
- function a(c) {
- if (this instanceof a) throw new TypeError("Symbol is not a constructor");
- return new ea("jscomp_symbol_" + (c || "") + "_" + b++, c);
- }
- var b = 0;
- return a;
- }();
- function u() {
- t();
- var a = r.Symbol.iterator;
- a || (a = r.Symbol.iterator = r.Symbol("Symbol.iterator"));
- "function" != typeof Array.prototype[a] && ba(Array.prototype, a, {
- configurable: !0,
- writable: !0,
- value: function value() {
- return fa(aa(this));
- }
- });
- u = function u() {};
- }
- function fa(a) {
- u();
- a = {
- next: a
- };
- a[r.Symbol.iterator] = function () {
- return this;
- };
- return a;
- }
- function ha(a) {
- var b = "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator];
- return b ? b.call(a) : {
- next: aa(a)
- };
- }
- var ia = "function" == typeof Object.create ? Object.create : function (a) {
- function b() {}
- b.prototype = a;
- return new b();
- },
- ja;
- if ("function" == typeof Object.setPrototypeOf) ja = Object.setPrototypeOf;else {
- var ka;
- a: {
- var la = {
- V: !0
- },
- ma = {};
- try {
- ma.__proto__ = la;
- ka = ma.V;
- break a;
- } catch (a) {}
- ka = !1;
- }
- ja = ka ? function (a, b) {
- a.__proto__ = b;
- if (a.__proto__ !== b) throw new TypeError(a + " is not extensible");
- return a;
- } : null;
- }
- var na = ja;
- function oa(a, b) {
- a.prototype = ia(b.prototype);
- a.prototype.constructor = a;
- if (na) na(a, b);else for (var c in b) {
- if ("prototype" != c) if (Object.defineProperties) {
- var d = Object.getOwnPropertyDescriptor(b, c);
- d && Object.defineProperty(a, c, d);
- } else a[c] = b[c];
- }
- a.O = b.prototype;
- }
- function pa(a, b) {
- u();
- a instanceof String && (a += "");
- var c = 0,
- d = {
- next: function next() {
- if (c < a.length) {
- var f = c++;
- return {
- value: b(f, a[f]),
- done: !1
- };
- }
- d.next = function () {
- return {
- done: !0,
- value: void 0
- };
- };
- return d.next();
- }
- };
- d[Symbol.iterator] = function () {
- return d;
- };
- return d;
- }
- function v(a, b) {
- if (b) {
- var c = r;
- a = a.split(".");
- for (var d = 0; d < a.length - 1; d++) {
- var f = a[d];
- f in c || (c[f] = {});
- c = c[f];
- }
- a = a[a.length - 1];
- d = c[a];
- b = b(d);
- b != d && null != b && ba(c, a, {
- configurable: !0,
- writable: !0,
- value: b
- });
- }
- }
- v("Array.prototype.keys", function (a) {
- return a ? a : function () {
- return pa(this, function (b) {
- return b;
- });
- };
- });
- v("Array.prototype.find", function (a) {
- return a ? a : function (b, c) {
- a: {
- var d = this;
- d instanceof String && (d = String(d));
- for (var f = d.length, g = 0; g < f; g++) {
- var e = d[g];
- if (b.call(c, e, g, d)) {
- b = e;
- break a;
- }
- }
- b = void 0;
- }
- return b;
- };
- });
- v("Object.is", function (a) {
- return a ? a : function (b, c) {
- return b === c ? 0 !== b || 1 / b === 1 / c : b !== b && c !== c;
- };
- });
- v("Array.prototype.includes", function (a) {
- return a ? a : function (b, c) {
- var d = this;
- d instanceof String && (d = String(d));
- var f = d.length;
- c = c || 0;
- for (0 > c && (c = Math.max(c + f, 0)); c < f; c++) {
- var g = d[c];
- if (g === b || Object.is(g, b)) return !0;
- }
- return !1;
- };
- });
- v("Promise", function (a) {
- function b(e) {
- this.b = 0;
- this.c = void 0;
- this.a = [];
- var h = this.f();
- try {
- e(h.resolve, h.reject);
- } catch (k) {
- h.reject(k);
- }
- }
- function c() {
- this.a = null;
- }
- function d(e) {
- return e instanceof b ? e : new b(function (h) {
- h(e);
- });
- }
- if (a) return a;
- c.prototype.b = function (e) {
- if (null == this.a) {
- this.a = [];
- var h = this;
- this.c(function () {
- h.g();
- });
- }
- this.a.push(e);
- };
- var f = r.setTimeout;
- c.prototype.c = function (e) {
- f(e, 0);
- };
- c.prototype.g = function () {
- for (; this.a && this.a.length;) {
- var e = this.a;
- this.a = [];
- for (var h = 0; h < e.length; ++h) {
- var k = e[h];
- e[h] = null;
- try {
- k();
- } catch (l) {
- this.f(l);
- }
- }
- }
- this.a = null;
- };
- c.prototype.f = function (e) {
- this.c(function () {
- throw e;
- });
- };
- b.prototype.f = function () {
- function e(l) {
- return function (m) {
- k || (k = !0, l.call(h, m));
- };
- }
- var h = this,
- k = !1;
- return {
- resolve: e(this.s),
- reject: e(this.g)
- };
- };
- b.prototype.s = function (e) {
- if (e === this) this.g(new TypeError("A Promise cannot resolve to itself"));else if (e instanceof b) this.v(e);else {
- a: switch (_typeof(e)) {
- case "object":
- var h = null != e;
- break a;
- case "function":
- h = !0;
- break a;
- default:
- h = !1;
- }
- h ? this.m(e) : this.h(e);
- }
- };
- b.prototype.m = function (e) {
- var h = void 0;
- try {
- h = e.then;
- } catch (k) {
- this.g(k);
- return;
- }
- "function" == typeof h ? this.w(h, e) : this.h(e);
- };
- b.prototype.g = function (e) {
- this.i(2, e);
- };
- b.prototype.h = function (e) {
- this.i(1, e);
- };
- b.prototype.i = function (e, h) {
- if (0 != this.b) throw Error("Cannot settle(" + e + ", " + h + "): Promise already settled in state" + this.b);
- this.b = e;
- this.c = h;
- this.l();
- };
- b.prototype.l = function () {
- if (null != this.a) {
- for (var e = 0; e < this.a.length; ++e) {
- g.b(this.a[e]);
- }
- this.a = null;
- }
- };
- var g = new c();
- b.prototype.v = function (e) {
- var h = this.f();
- e.F(h.resolve, h.reject);
- };
- b.prototype.w = function (e, h) {
- var k = this.f();
- try {
- e.call(h, k.resolve, k.reject);
- } catch (l) {
- k.reject(l);
- }
- };
- b.prototype.then = function (e, h) {
- function k(q, w) {
- return "function" == typeof q ? function (z) {
- try {
- l(q(z));
- } catch (M) {
- m(M);
- }
- } : w;
- }
- var l,
- m,
- p = new b(function (q, w) {
- l = q;
- m = w;
- });
- this.F(k(e, l), k(h, m));
- return p;
- };
- b.prototype.catch = function (e) {
- return this.then(void 0, e);
- };
- b.prototype.F = function (e, h) {
- function k() {
- switch (l.b) {
- case 1:
- e(l.c);
- break;
- case 2:
- h(l.c);
- break;
- default:
- throw Error("Unexpected state: " + l.b);
- }
- }
- var l = this;
- null == this.a ? g.b(k) : this.a.push(k);
- };
- b.resolve = d;
- b.reject = function (e) {
- return new b(function (h, k) {
- k(e);
- });
- };
- b.race = function (e) {
- return new b(function (h, k) {
- for (var l = ha(e), m = l.next(); !m.done; m = l.next()) {
- d(m.value).F(h, k);
- }
- });
- };
- b.all = function (e) {
- var h = ha(e),
- k = h.next();
- return k.done ? d([]) : new b(function (l, m) {
- function p(z) {
- return function (M) {
- q[z] = M;
- w--;
- 0 == w && l(q);
- };
- }
- var q = [],
- w = 0;
- do {
- q.push(void 0), w++, d(k.value).F(p(q.length - 1), m), k = h.next();
- } while (!k.done);
- });
- };
- return b;
- });
- var qa = qa || {},
- x = this || self;
- function y(a, b) {
- a = a.split(".");
- b = b || x;
- for (var c = 0; c < a.length; c++) {
- if (b = b[a[c]], null == b) return null;
- }
- return b;
- }
- function ra() {}
- function sa(a) {
- var b = _typeof(a);
- return "object" == b && null != a || "function" == b;
- }
- var ta = "closure_uid_" + (1E9 * Math.random() >>> 0),
- ua = 0;
- function va(a, b, c) {
- return a.call.apply(a.bind, arguments);
- }
- function wa(a, b, c) {
- if (!a) throw Error();
- if (2 < arguments.length) {
- var d = Array.prototype.slice.call(arguments, 2);
- return function () {
- var f = Array.prototype.slice.call(arguments);
- Array.prototype.unshift.apply(f, d);
- return a.apply(b, f);
- };
- }
- return function () {
- return a.apply(b, arguments);
- };
- }
- function A(a, b, c) {
- Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? A = va : A = wa;
- return A.apply(null, arguments);
- }
- function B(a, b) {
- function c() {}
- c.prototype = b.prototype;
- a.O = b.prototype;
- a.prototype = new c();
- a.prototype.constructor = a;
- }
- ;
- function xa(a) {
- this.a = a || {};
- }
- xa.prototype.get = function (a) {
- return this.a[a];
- };
- xa.prototype.G = function () {
- return Object.keys(this.a);
- };
- function C(a, b, c, d) {
- this.f = a;
- this.c = b;
- this.b = c;
- this.a = d;
- }
- C.prototype.getRequestMessage = function () {
- return this.f;
- };
- C.prototype.getMethodDescriptor = function () {
- return this.c;
- };
- C.prototype.getMetadata = function () {
- return this.b;
- };
- C.prototype.getCallOptions = function () {
- return this.a;
- };
- function D(a, b, c, d) {
- c = void 0 === c ? {} : c;
- this.c = a;
- this.a = c;
- this.b = b;
- this.f = void 0 === d ? null : d;
- }
- D.prototype.getResponseMessage = function () {
- return this.c;
- };
- D.prototype.getMetadata = function () {
- return this.a;
- };
- D.prototype.getMethodDescriptor = function () {
- return this.b;
- };
- D.prototype.getStatus = function () {
- return this.f;
- };
- function ya(a, b, c, d, f, g) {
- this.name = a;
- this.a = f;
- this.b = g;
- }
- function za(a, b, c) {
- c = void 0 === c ? {} : c;
- var d = void 0 === d ? new xa() : d;
- return new C(b, a, c, d);
- }
- ya.prototype.getName = function () {
- return this.name;
- };
- ya.prototype.getName = ya.prototype.getName;
- function Aa(a) {
- switch (a) {
- case 200:
- return 0;
- case 400:
- return 3;
- case 401:
- return 16;
- case 403:
- return 7;
- case 404:
- return 5;
- case 409:
- return 10;
- case 412:
- return 9;
- case 429:
- return 8;
- case 499:
- return 1;
- case 500:
- return 2;
- case 501:
- return 12;
- case 503:
- return 14;
- case 504:
- return 4;
- default:
- return 2;
- }
- }
- ;
- function E(a, b, c) {
- c = void 0 === c ? {} : c;
- b = Error.call(this, b);
- this.message = b.message;
- "stack" in b && (this.stack = b.stack);
- this.code = a;
- this.metadata = c;
- }
- oa(E, Error);
- E.prototype.name = "RpcError";
- function Ba(a) {
- this.a = a;
- }
- Ba.prototype.on = function (a, b) {
- return "data" == a || "error" == a ? this : this.a.on(a, b);
- };
- Ba.prototype.removeListener = function (a, b) {
- return this.a.removeListener(a, b);
- };
- Ba.prototype.cancel = function () {
- this.a.cancel();
- };
- function Ca(a) {
- switch (a) {
- case 0:
- return "No Error";
- case 1:
- return "Access denied to content document";
- case 2:
- return "File not found";
- case 3:
- return "Firefox silently errored";
- case 4:
- return "Application custom error";
- case 5:
- return "An exception occurred";
- case 6:
- return "Http response at 400 or 500 level";
- case 7:
- return "Request was aborted";
- case 8:
- return "Request timed out";
- case 9:
- return "The resource is not available offline";
- default:
- return "Unrecognized error code";
- }
- }
- ;
- function F(a) {
- if (Error.captureStackTrace) Error.captureStackTrace(this, F);else {
- var b = Error().stack;
- b && (this.stack = b);
- }
- a && (this.message = String(a));
- }
- B(F, Error);
- F.prototype.name = "CustomError";
- function Da(a, b) {
- a = a.split("%s");
- for (var c = "", d = a.length - 1, f = 0; f < d; f++) {
- c += a[f] + (f < b.length ? b[f] : "%s");
- }
- F.call(this, c + a[d]);
- }
- B(Da, F);
- Da.prototype.name = "AssertionError";
- function Ea(a, b) {
- throw new Da("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1));
- }
- ;
- function Fa() {
- this.l = null;
- this.i = [];
- this.m = 0;
- this.b = Ga;
- this.f = this.a = this.h = 0;
- this.c = null;
- this.g = 0;
- }
- function Ha(a, b) {
- function c(l) {
- l == Ia ? e.h = l : l == G ? e.h = l : Ja(e, h, k, "invalid frame byte");
- e.b = Ka;
- e.a = 0;
- e.f = 0;
- }
- function d(l) {
- e.f++;
- e.a = (e.a << 8) + l;
- 4 == e.f && (e.b = La, e.g = 0, "undefined" !== typeof Uint8Array ? e.c = new Uint8Array(e.a) : e.c = Array(e.a), 0 == e.a && g());
- }
- function f(l) {
- e.c[e.g++] = l;
- e.g == e.a && g();
- }
- function g() {
- var l = {};
- l[e.h] = e.c;
- e.i.push(l);
- e.b = Ga;
- }
- var e = a,
- h,
- k = 0;
- for (b instanceof Uint8Array || b instanceof Array ? h = b : h = new Uint8Array(b); k < h.length;) {
- switch (e.b) {
- case Ma:
- Ja(e, h, k, "stream already broken");
- break;
- case Ga:
- c(h[k]);
- break;
- case Ka:
- d(h[k]);
- break;
- case La:
- f(h[k]);
- break;
- default:
- throw Error("unexpected parser state: " + e.b);
- }
- e.m++;
- k++;
- }
- a = e.i;
- e.i = [];
- return 0 < a.length ? a : null;
- }
- var Ga = 0,
- Ka = 1,
- La = 2,
- Ma = 3,
- Ia = 0,
- G = 128;
- function Ja(a, b, c, d) {
- a.b = Ma;
- a.l = "The stream is broken @" + a.m + "/" + c + ". Error: " + d + ". With input:\n" + b;
- throw Error(a.l);
- }
- ;
- var Na = Array.prototype.indexOf ? function (a, b) {
- return Array.prototype.indexOf.call(a, b, void 0);
- } : function (a, b) {
- if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0);
- for (var c = 0; c < a.length; c++) {
- if (c in a && a[c] === b) return c;
- }
- return -1;
- };
- var Oa = String.prototype.trim ? function (a) {
- return a.trim();
- } : function (a) {
- return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1];
- };
- function H(a, b) {
- return -1 != a.indexOf(b);
- }
- function Pa(a, b) {
- return a < b ? -1 : a > b ? 1 : 0;
- }
- ;
- var I;
- a: {
- var Qa = x.navigator;
- if (Qa) {
- var Ra = Qa.userAgent;
- if (Ra) {
- I = Ra;
- break a;
- }
- }
- I = "";
- }
- ;
- function Sa(a, b) {
- for (var c in a) {
- b.call(void 0, a[c], c, a);
- }
- }
- function Ta(a, b) {
- var c = {},
- d;
- for (d in a) {
- c[d] = b.call(void 0, a[d], d, a);
- }
- return c;
- }
- var Ua = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
- function Va(a, b) {
- for (var c, d, f = 1; f < arguments.length; f++) {
- d = arguments[f];
- for (c in d) {
- a[c] = d[c];
- }
- for (var g = 0; g < Ua.length; g++) {
- c = Ua[g], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
- }
- }
- }
- ;
- function Wa(a) {
- var b = 1;
- a = a.split(":");
- for (var c = []; 0 < b && a.length;) {
- c.push(a.shift()), b--;
- }
- a.length && c.push(a.join(":"));
- return c;
- }
- ;
- function Xa(a) {
- Xa[" "](a);
- return a;
- }
- Xa[" "] = ra;
- function Ya(a) {
- var b = Za;
- return Object.prototype.hasOwnProperty.call(b, 9) ? b[9] : b[9] = a(9);
- }
- ;
- var $a = H(I, "Opera"),
- ab = H(I, "Trident") || H(I, "MSIE"),
- bb = H(I, "Edge"),
- cb = H(I, "Gecko") && !(H(I.toLowerCase(), "webkit") && !H(I, "Edge")) && !(H(I, "Trident") || H(I, "MSIE")) && !H(I, "Edge"),
- db = H(I.toLowerCase(), "webkit") && !H(I, "Edge"),
- eb;
- a: {
- var fb = "",
- gb = function () {
- var a = I;
- if (cb) return /rv:([^\);]+)(\)|;)/.exec(a);
- if (bb) return /Edge\/([\d\.]+)/.exec(a);
- if (ab) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
- if (db) return /WebKit\/(\S+)/.exec(a);
- if ($a) return /(?:Version)[ \/]?(\S+)/.exec(a);
- }();
- gb && (fb = gb ? gb[1] : "");
- if (ab) {
- var hb,
- ib = x.document;
- hb = ib ? ib.documentMode : void 0;
- if (null != hb && hb > parseFloat(fb)) {
- eb = String(hb);
- break a;
- }
- }
- eb = fb;
- }
- var Za = {};
- function jb() {
- return Ya(function () {
- for (var a = 0, b = Oa(String(eb)).split("."), c = Oa("9").split("."), d = Math.max(b.length, c.length), f = 0; 0 == a && f < d; f++) {
- var g = b[f] || "",
- e = c[f] || "";
- do {
- g = /(\d*)(\D*)(.*)/.exec(g) || ["", "", "", ""];
- e = /(\d*)(\D*)(.*)/.exec(e) || ["", "", "", ""];
- if (0 == g[0].length && 0 == e[0].length) break;
- a = Pa(0 == g[1].length ? 0 : parseInt(g[1], 10), 0 == e[1].length ? 0 : parseInt(e[1], 10)) || Pa(0 == g[2].length, 0 == e[2].length) || Pa(g[2], e[2]);
- g = g[3];
- e = e[3];
- } while (0 == a);
- }
- return 0 <= a;
- });
- }
- ;
- function kb() {
- 0 != lb && (Object.prototype.hasOwnProperty.call(this, ta) && this[ta] || (this[ta] = ++ua));
- this.K = this.K;
- }
- var lb = 0;
- kb.prototype.K = !1;
- var mb = Object.freeze || function (a) {
- return a;
- };
- function J(a, b) {
- this.type = a;
- this.a = this.target = b;
- this.defaultPrevented = !1;
- }
- J.prototype.b = function () {
- this.defaultPrevented = !0;
- };
- var nb = function () {
- if (!x.addEventListener || !Object.defineProperty) return !1;
- var a = !1,
- b = Object.defineProperty({}, "passive", {
- get: function get() {
- a = !0;
- }
- });
- try {
- x.addEventListener("test", ra, b), x.removeEventListener("test", ra, b);
- } catch (c) {}
- return a;
- }();
- function K(a, b) {
- J.call(this, a ? a.type : "");
- this.relatedTarget = this.a = this.target = null;
- this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;
- this.key = "";
- this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
- this.pointerId = 0;
- this.pointerType = "";
- this.c = null;
- if (a) {
- var c = this.type = a.type,
- d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;
- this.target = a.target || a.srcElement;
- this.a = b;
- if (b = a.relatedTarget) {
- if (cb) {
- a: {
- try {
- Xa(b.nodeName);
- var f = !0;
- break a;
- } catch (g) {}
- f = !1;
- }
- f || (b = null);
- }
- } else "mouseover" == c ? b = a.fromElement : "mouseout" == c && (b = a.toElement);
- this.relatedTarget = b;
- d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);
- this.button = a.button;
- this.key = a.key || "";
- this.ctrlKey = a.ctrlKey;
- this.altKey = a.altKey;
- this.shiftKey = a.shiftKey;
- this.metaKey = a.metaKey;
- this.pointerId = a.pointerId || 0;
- this.pointerType = "string" === typeof a.pointerType ? a.pointerType : ob[a.pointerType] || "";
- this.c = a;
- a.defaultPrevented && K.O.b.call(this);
- }
- }
- B(K, J);
- var ob = mb({
- 2: "touch",
- 3: "pen",
- 4: "mouse"
- });
- K.prototype.b = function () {
- K.O.b.call(this);
- var a = this.c;
- a.preventDefault ? a.preventDefault() : a.returnValue = !1;
- };
- var L = "closure_listenable_" + (1E6 * Math.random() | 0);
- var pb = 0;
- function qb(a, b, c, d, f) {
- this.listener = a;
- this.proxy = null;
- this.src = b;
- this.type = c;
- this.capture = !!d;
- this.H = f;
- this.key = ++pb;
- this.A = this.D = !1;
- }
- function rb(a) {
- a.A = !0;
- a.listener = null;
- a.proxy = null;
- a.src = null;
- a.H = null;
- }
- ;
- function sb(a) {
- this.src = a;
- this.a = {};
- this.b = 0;
- }
- sb.prototype.add = function (a, b, c, d, f) {
- var g = a.toString();
- a = this.a[g];
- a || (a = this.a[g] = [], this.b++);
- var e = tb(a, b, d, f);
- -1 < e ? (b = a[e], c || (b.D = !1)) : (b = new qb(b, this.src, g, !!d, f), b.D = c, a.push(b));
- return b;
- };
- sb.prototype.remove = function (a, b, c, d) {
- a = a.toString();
- if (!(a in this.a)) return !1;
- var f = this.a[a];
- b = tb(f, b, c, d);
- return -1 < b ? (rb(f[b]), Array.prototype.splice.call(f, b, 1), 0 == f.length && (delete this.a[a], this.b--), !0) : !1;
- };
- function ub(a, b) {
- var c = b.type;
- if (c in a.a) {
- var d = a.a[c],
- f = Na(d, b),
- g;
- (g = 0 <= f) && Array.prototype.splice.call(d, f, 1);
- g && (rb(b), 0 == a.a[c].length && (delete a.a[c], a.b--));
- }
- }
- function tb(a, b, c, d) {
- for (var f = 0; f < a.length; ++f) {
- var g = a[f];
- if (!g.A && g.listener == b && g.capture == !!c && g.H == d) return f;
- }
- return -1;
- }
- ;
- var vb = "closure_lm_" + (1E6 * Math.random() | 0),
- wb = {},
- xb = 0;
- function yb(a, b, c, d, f) {
- if (d && d.once) zb(a, b, c, d, f);else if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
- yb(a, b[g], c, d, f);
- } else c = Ab(c), a && a[L] ? a.f.add(String(b), c, !1, sa(d) ? !!d.capture : !!d, f) : Bb(a, b, c, !1, d, f);
- }
- function Bb(a, b, c, d, f, g) {
- if (!b) throw Error("Invalid event type");
- var e = sa(f) ? !!f.capture : !!f,
- h = Cb(a);
- h || (a[vb] = h = new sb(a));
- c = h.add(b, c, d, e, g);
- if (!c.proxy) {
- d = Db();
- c.proxy = d;
- d.src = a;
- d.listener = c;
- if (a.addEventListener) nb || (f = e), void 0 === f && (f = !1), a.addEventListener(b.toString(), d, f);else if (a.attachEvent) a.attachEvent(Eb(b.toString()), d);else if (a.addListener && a.removeListener) a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");
- xb++;
- }
- }
- function Db() {
- function a(c) {
- return b.call(a.src, a.listener, c);
- }
- var b = Fb;
- return a;
- }
- function zb(a, b, c, d, f) {
- if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
- zb(a, b[g], c, d, f);
- } else c = Ab(c), a && a[L] ? a.f.add(String(b), c, !0, sa(d) ? !!d.capture : !!d, f) : Bb(a, b, c, !0, d, f);
- }
- function Gb(a, b, c, d, f) {
- if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
- Gb(a, b[g], c, d, f);
- } else (d = sa(d) ? !!d.capture : !!d, c = Ab(c), a && a[L]) ? a.f.remove(String(b), c, d, f) : a && (a = Cb(a)) && (b = a.a[b.toString()], a = -1, b && (a = tb(b, c, d, f)), (c = -1 < a ? b[a] : null) && Hb(c));
- }
- function Hb(a) {
- if ("number" !== typeof a && a && !a.A) {
- var b = a.src;
- if (b && b[L]) ub(b.f, a);else {
- var c = a.type,
- d = a.proxy;
- b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(Eb(c), d) : b.addListener && b.removeListener && b.removeListener(d);
- xb--;
- (c = Cb(b)) ? (ub(c, a), 0 == c.b && (c.src = null, b[vb] = null)) : rb(a);
- }
- }
- }
- function Eb(a) {
- return a in wb ? wb[a] : wb[a] = "on" + a;
- }
- function Fb(a, b) {
- if (a.A) a = !0;else {
- b = new K(b, this);
- var c = a.listener,
- d = a.H || a.src;
- a.D && Hb(a);
- a = c.call(d, b);
- }
- return a;
- }
- function Cb(a) {
- a = a[vb];
- return a instanceof sb ? a : null;
- }
- var Ib = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
- function Ab(a) {
- if ("function" === typeof a) return a;
- a[Ib] || (a[Ib] = function (b) {
- return a.handleEvent(b);
- });
- return a[Ib];
- }
- ;
- function N() {
- kb.call(this);
- this.f = new sb(this);
- this.U = this;
- }
- B(N, kb);
- N.prototype[L] = !0;
- N.prototype.addEventListener = function (a, b, c, d) {
- yb(this, a, b, c, d);
- };
- N.prototype.removeEventListener = function (a, b, c, d) {
- Gb(this, a, b, c, d);
- };
- function O(a, b) {
- a = a.U;
- var c = b.type || b;
- if ("string" === typeof b) b = new J(b, a);else if (b instanceof J) b.target = b.target || a;else {
- var d = b;
- b = new J(c, a);
- Va(b, d);
- }
- a = b.a = a;
- Jb(a, c, !0, b);
- Jb(a, c, !1, b);
- }
- function Jb(a, b, c, d) {
- if (b = a.f.a[String(b)]) {
- b = b.concat();
- for (var f = !0, g = 0; g < b.length; ++g) {
- var e = b[g];
- if (e && !e.A && e.capture == c) {
- var h = e.listener,
- k = e.H || e.src;
- e.D && ub(a.f, e);
- f = !1 !== h.call(k, d) && f;
- }
- }
- }
- }
- ;
- var Kb = x;
- function Lb(a, b, c) {
- if ("function" === typeof a) c && (a = A(a, c));else if (a && "function" == typeof a.handleEvent) a = A(a.handleEvent, a);else throw Error("Invalid listener argument");
- return 2147483647 < Number(b) ? -1 : Kb.setTimeout(a, b || 0);
- }
- ;
- function Mb(a, b) {
- this.name = a;
- this.value = b;
- }
- Mb.prototype.toString = function () {
- return this.name;
- };
- var Nb = new Mb("OFF", Infinity),
- Ob = new Mb("SEVERE", 1E3),
- Pb = new Mb("CONFIG", 700),
- Qb = new Mb("FINE", 500);
- function Rb() {
- this.clear();
- }
- var Sb;
- Rb.prototype.clear = function () {};
- function Ub(a, b, c) {
- this.reset(a || Nb, b, c, void 0, void 0);
- }
- Ub.prototype.reset = function () {};
- function Vb(a, b) {
- this.a = null;
- this.f = [];
- this.b = (void 0 === b ? null : b) || null;
- this.c = [];
- this.g = {
- getName: function getName() {
- return a;
- }
- };
- }
- function Wb(a) {
- if (a.a) return a.a;
- if (a.b) return Wb(a.b);
- Ea("Root logger has no level set.");
- return Nb;
- }
- function Xb(a, b) {
- for (; a;) {
- a.f.forEach(function (c) {
- c(b);
- }), a = a.b;
- }
- }
- function Yb() {
- this.entries = {};
- var a = new Vb("");
- a.a = Pb;
- this.entries[""] = a;
- }
- var Zb;
- function $b(a, b, c) {
- var d = a.entries[b];
- if (d) return void 0 !== c && (d.a = c), d;
- d = $b(a, b.substr(0, b.lastIndexOf(".")));
- var f = new Vb(b, d);
- a.entries[b] = f;
- d.c.push(f);
- void 0 !== c && (f.a = c);
- return f;
- }
- function ac() {
- Zb || (Zb = new Yb());
- return Zb;
- }
- function bc(a, b, c) {
- var d;
- if (d = a) if (d = a && b) {
- d = b.value;
- var f = a ? Wb($b(ac(), a.getName())) : Nb;
- d = d >= f.value;
- }
- d && (b = b || Nb, d = $b(ac(), a.getName()), "function" === typeof c && (c = c()), Sb || (Sb = new Rb()), a = a.getName(), a = new Ub(b, c, a), Xb(d, a));
- }
- function P(a, b) {
- a && bc(a, Qb, b);
- }
- ;
- function cc() {}
- cc.prototype.a = null;
- function dc(a) {
- var b;
- (b = a.a) || (b = {}, ec(a) && (b[0] = !0, b[1] = !0), b = a.a = b);
- return b;
- }
- ;
- var fc;
- function gc() {}
- B(gc, cc);
- function hc(a) {
- // 解决兼容APP端跨域的问题,app端必须使用H5+中的plus.net.XMLHttpRequest【APP端不兼容标准HTML中的XMLHttpRequest】
- return (a = ec(a)) ? new ActiveXObject(a) : new plus.net.XMLHttpRequest();
- // return (a = ec(a)) ? new ActiveXObject(a) : new XMLHttpRequest
- }
- function ec(a) {
- if (!a.b && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) {
- for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) {
- var d = b[c];
- try {
- return new ActiveXObject(d), a.b = d;
- } catch (f) {}
- }
- throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");
- }
- return a.b;
- }
- fc = new gc();
- t();
- u();
- function ic(a, b) {
- this.b = a[x.Symbol.iterator]();
- this.c = b;
- this.f = 0;
- }
- ic.prototype[Symbol.iterator] = function () {
- return this;
- };
- ic.prototype.next = function () {
- var a = this.b.next();
- return {
- value: a.done ? void 0 : this.c.call(void 0, a.value, this.f++),
- done: a.done
- };
- };
- function jc(a, b) {
- return new ic(a, b);
- }
- t();
- u();
- t();
- u();
- var kc = "StopIteration" in x ? x.StopIteration : {
- message: "StopIteration",
- stack: ""
- };
- function Q() {}
- Q.prototype.next = function () {
- return Q.prototype.a.call(this);
- };
- Q.prototype.a = function () {
- throw kc;
- };
- Q.prototype.u = function () {
- return this;
- };
- function lc(a) {
- if (a instanceof R || a instanceof S || a instanceof T) return a;
- if ("function" == typeof a.next) return new R(function () {
- return mc(a);
- });
- t();
- u();
- if ("function" == typeof a[Symbol.iterator]) return t(), u(), new R(function () {
- return a[Symbol.iterator]();
- });
- if ("function" == typeof a.u) return new R(function () {
- return mc(a.u());
- });
- throw Error("Not an iterator or iterable.");
- }
- function mc(a) {
- if (!(a instanceof Q)) return a;
- var b = !1;
- return {
- next: function next() {
- for (var c; !b;) {
- try {
- c = a.a();
- break;
- } catch (d) {
- if (d !== kc) throw d;
- b = !0;
- }
- }
- return {
- value: c,
- done: b
- };
- }
- };
- }
- t();
- u();
- function R(a) {
- this.b = a;
- }
- R.prototype.u = function () {
- return new S(this.b());
- };
- R.prototype[Symbol.iterator] = function () {
- return new T(this.b());
- };
- R.prototype.c = function () {
- return new T(this.b());
- };
- t();
- u();
- function S(a) {
- this.b = a;
- }
- oa(S, Q);
- S.prototype.a = function () {
- var a = this.b.next();
- if (a.done) throw kc;
- return a.value;
- };
- S.prototype.next = function () {
- return S.prototype.a.call(this);
- };
- S.prototype[Symbol.iterator] = function () {
- return new T(this.b);
- };
- S.prototype.c = function () {
- return new T(this.b);
- };
- function T(a) {
- R.call(this, function () {
- return a;
- });
- this.f = a;
- }
- oa(T, R);
- T.prototype.next = function () {
- return this.f.next();
- };
- function nc(a, b) {
- this.o = {};
- this.j = [];
- this.B = this.size = 0;
- var c = arguments.length;
- if (1 < c) {
- if (c % 2) throw Error("Uneven number of arguments");
- for (var d = 0; d < c; d += 2) {
- this.set(arguments[d], arguments[d + 1]);
- }
- } else a && this.addAll(a);
- }
- n = nc.prototype;
- n.G = function () {
- oc(this);
- return this.j.concat();
- };
- n.has = function (a) {
- return U(this.o, a);
- };
- n.clear = function () {
- this.o = {};
- this.B = this.size = this.j.length = 0;
- };
- n.remove = function (a) {
- return this.delete(a);
- };
- n.delete = function (a) {
- return U(this.o, a) ? (delete this.o[a], --this.size, this.B++, this.j.length > 2 * this.size && oc(this), !0) : !1;
- };
- function oc(a) {
- if (a.size != a.j.length) {
- for (var b = 0, c = 0; b < a.j.length;) {
- var d = a.j[b];
- U(a.o, d) && (a.j[c++] = d);
- b++;
- }
- a.j.length = c;
- }
- if (a.size != a.j.length) {
- var f = {};
- for (c = b = 0; b < a.j.length;) {
- d = a.j[b], U(f, d) || (a.j[c++] = d, f[d] = 1), b++;
- }
- a.j.length = c;
- }
- }
- n.get = function (a, b) {
- return U(this.o, a) ? this.o[a] : b;
- };
- n.set = function (a, b) {
- U(this.o, a) || (this.size += 1, this.j.push(a), this.B++);
- this.o[a] = b;
- };
- n.addAll = function (a) {
- if (a instanceof nc) for (var b = a.G(), c = 0; c < b.length; c++) {
- this.set(b[c], a.get(b[c]));
- } else for (b in a) {
- this.set(b, a[b]);
- }
- };
- n.forEach = function (a, b) {
- for (var c = this.G(), d = 0; d < c.length; d++) {
- var f = c[d],
- g = this.get(f);
- a.call(b, g, f, this);
- }
- };
- n.clone = function () {
- return new nc(this);
- };
- n.keys = function () {
- return lc(this.u(!0)).c();
- };
- n.values = function () {
- return lc(this.u(!1)).c();
- };
- n.entries = function () {
- var a = this;
- return jc(this.keys(), function (b) {
- return [b, a.get(b)];
- });
- };
- n.u = function (a) {
- oc(this);
- var b = 0,
- c = this.B,
- d = this,
- f = new Q();
- f.a = function () {
- if (c != d.B) throw Error("The map has changed since the iterator was created");
- if (b >= d.j.length) throw kc;
- var g = d.j[b++];
- return a ? g : d.o[g];
- };
- f.next = f.a.bind(f);
- return f;
- };
- function U(a, b) {
- return Object.prototype.hasOwnProperty.call(a, b);
- }
- ;
- var pc = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;
- function qc(a) {
- N.call(this);
- this.headers = new nc();
- this.C = a || null;
- this.c = !1;
- this.J = this.a = null;
- this.P = this.v = "";
- this.g = 0;
- this.l = "";
- this.i = this.N = this.s = this.L = !1;
- this.h = 0;
- this.w = null;
- this.m = rc;
- this.I = this.M = !1;
- }
- B(qc, N);
- var rc = "";
- qc.prototype.b = $b(ac(), "goog.net.XhrIo", void 0).g;
- var sc = /^https?$/i,
- tc = ["POST", "PUT"];
- function uc(a, b, c) {
- if (a.a) throw Error("[goog.net.XhrIo] Object is active with another request=" + a.v + "; newUri=" + b);
- a.v = b;
- a.l = "";
- a.g = 0;
- a.P = "POST";
- a.L = !1;
- a.c = !0;
- a.a = a.C ? hc(a.C) : hc(fc);
- a.J = a.C ? dc(a.C) : dc(fc);
- a.a.onreadystatechange = A(a.R, a);
- try {
- P(a.b, V(a, "Opening Xhr")), a.N = !0, a.a.open("POST", String(b), !0), a.N = !1;
- } catch (g) {
- P(a.b, V(a, "Error opening Xhr: " + g.message));
- vc(a, g);
- return;
- }
- b = c || "";
- c = a.headers.clone();
- var d = c.G().find(function (g) {
- return "content-type" == g.toLowerCase();
- }),
- f = x.FormData && b instanceof x.FormData;
- !(0 <= Na(tc, "POST")) || d || f || c.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
- c.forEach(function (g, e) {
- this.a.setRequestHeader(e, g);
- }, a);
- a.m && (a.a.responseType = a.m);
- "withCredentials" in a.a && a.a.withCredentials !== a.M && (a.a.withCredentials = a.M);
- try {
- wc(a), 0 < a.h && (a.I = xc(a.a), P(a.b, V(a, "Will abort after " + a.h + "ms if incomplete, xhr2 " + a.I)), a.I ? (a.a.timeout = a.h, a.a.ontimeout = A(a.T, a)) : a.w = Lb(a.T, a.h, a)), P(a.b, V(a, "Sending request")), a.s = !0, a.a.send(b), a.s = !1;
- } catch (g) {
- P(a.b, V(a, "Send error: " + g.message)), vc(a, g);
- }
- }
- function xc(a) {
- return ab && jb() && "number" === typeof a.timeout && void 0 !== a.ontimeout;
- }
- n = qc.prototype;
- n.T = function () {
- "undefined" != typeof qa && this.a && (this.l = "Timed out after " + this.h + "ms, aborting", this.g = 8, P(this.b, V(this, this.l)), O(this, "timeout"), this.abort(8));
- };
- function vc(a, b) {
- a.c = !1;
- a.a && (a.i = !0, a.a.abort(), a.i = !1);
- a.l = b;
- a.g = 5;
- yc(a);
- zc(a);
- }
- function yc(a) {
- a.L || (a.L = !0, O(a, "complete"), O(a, "error"));
- }
- n.abort = function (a) {
- this.a && this.c && (P(this.b, V(this, "Aborting")), this.c = !1, this.i = !0, this.a.abort(), this.i = !1, this.g = a || 7, O(this, "complete"), O(this, "abort"), zc(this));
- };
- n.R = function () {
- this.K || (this.N || this.s || this.i ? Ac(this) : this.W());
- };
- n.W = function () {
- Ac(this);
- };
- function Ac(a) {
- if (a.c && "undefined" != typeof qa) if (a.J[1] && 4 == W(a) && 2 == a.getStatus()) P(a.b, V(a, "Local request error detected and ignored"));else if (a.s && 4 == W(a)) Lb(a.R, 0, a);else if (O(a, "readystatechange"), 4 == W(a)) {
- P(a.b, V(a, "Request complete"));
- a.c = !1;
- try {
- var b = a.getStatus();
- a: switch (b) {
- case 200:
- case 201:
- case 202:
- case 204:
- case 206:
- case 304:
- case 1223:
- var c = !0;
- break a;
- default:
- c = !1;
- }
- var d;
- if (!(d = c)) {
- var f;
- if (f = 0 === b) {
- var g = String(a.v).match(pc)[1] || null;
- if (!g && x.self && x.self.location) {
- var e = x.self.location.protocol;
- g = e.substr(0, e.length - 1);
- }
- f = !sc.test(g ? g.toLowerCase() : "");
- }
- d = f;
- }
- if (d) O(a, "complete"), O(a, "success");else {
- a.g = 6;
- try {
- var h = 2 < W(a) ? a.a.statusText : "";
- } catch (k) {
- P(a.b, "Can not get status: " + k.message), h = "";
- }
- a.l = h + " [" + a.getStatus() + "]";
- yc(a);
- }
- } finally {
- zc(a);
- }
- }
- }
- function zc(a) {
- if (a.a) {
- wc(a);
- var b = a.a,
- c = a.J[0] ? ra : null;
- a.a = null;
- a.J = null;
- O(a, "ready");
- try {
- b.onreadystatechange = c;
- } catch (d) {
- (a = a.b) && bc(a, Ob, "Problem encountered resetting onreadystatechange: " + d.message);
- }
- }
- }
- function wc(a) {
- a.a && a.I && (a.a.ontimeout = null);
- a.w && (Kb.clearTimeout(a.w), a.w = null);
- }
- function W(a) {
- return a.a ? a.a.readyState : 0;
- }
- n.getStatus = function () {
- try {
- return 2 < W(this) ? this.a.status : -1;
- } catch (a) {
- return -1;
- }
- };
- function Bc(a) {
- try {
- if (!a.a) return null;
- if ("response" in a.a) return a.a.response;
- switch (a.m) {
- case rc:
- case "text":
- return a.a.responseText;
- case "arraybuffer":
- if ("mozResponseArrayBuffer" in a.a) return a.a.mozResponseArrayBuffer;
- }
- var b = a.b;
- b && bc(b, Ob, "Response type " + a.m + " is not supported on this browser");
- return null;
- } catch (c) {
- return P(a.b, "Can not get response: " + c.message), null;
- }
- }
- function Cc(a, b) {
- if (a.a && 4 == W(a)) return a = a.a.getResponseHeader(b), null === a ? void 0 : a;
- }
- function Dc(a) {
- var b = {};
- a = (a.a && 4 == W(a) ? a.a.getAllResponseHeaders() || "" : "").split("\r\n");
- for (var c = 0; c < a.length; c++) {
- if (!/^[\s\xa0]*$/.test(a[c])) {
- var d = Wa(a[c]),
- f = d[0];
- d = d[1];
- if ("string" === typeof d) {
- d = d.trim();
- var g = b[f] || [];
- b[f] = g;
- g.push(d);
- }
- }
- }
- return Ta(b, function (e) {
- return e.join(", ");
- });
- }
- function V(a, b) {
- return b + " [" + a.P + " " + a.v + " " + a.getStatus() + "]";
- }
- ;
- var Ec = {},
- Fc = null;
- function Gc(a) {
- var b = a.length,
- c = 3 * b / 4;
- c % 3 ? c = Math.floor(c) : H("=.", a[b - 1]) && (c = H("=.", a[b - 2]) ? c - 2 : c - 1);
- var d = new Uint8Array(c),
- f = 0;
- Hc(a, function (g) {
- d[f++] = g;
- });
- return d.subarray(0, f);
- }
- function Hc(a, b) {
- function c(k) {
- for (; d < a.length;) {
- var l = a.charAt(d++),
- m = Fc[l];
- if (null != m) return m;
- if (!/^[\s\xa0]*$/.test(l)) throw Error("Unknown base64 encoding at char: " + l);
- }
- return k;
- }
- Ic();
- for (var d = 0;;) {
- var f = c(-1),
- g = c(0),
- e = c(64),
- h = c(64);
- if (64 === h && -1 === f) break;
- b(f << 2 | g >> 4);
- 64 != e && (b(g << 4 & 240 | e >> 2), 64 != h && b(e << 6 & 192 | h));
- }
- }
- function Ic() {
- if (!Fc) {
- Fc = {};
- for (var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""), b = ["+/=", "+/", "-_=", "-_.", "-_"], c = 0; 5 > c; c++) {
- var d = a.concat(b[c].split(""));
- Ec[c] = d;
- for (var f = 0; f < d.length; f++) {
- var g = d[f];
- void 0 === Fc[g] && (Fc[g] = f);
- }
- }
- }
- }
- ;
- var Jc = ["content-type", "grpc-status", "grpc-message"];
- function X(a) {
- // console.log('X run')
- this.a = a.Z;
- this.m = null;
- this.b = [];
- this.h = [];
- this.g = [];
- this.f = [];
- this.c = [];
- this.l = !1;
- this.i = 0;
- this.s = new Fa();
- var b = this;
- yb(this.a, "readystatechange", function () {
- // console.log('readystatechange')
- // console.log(a)
- var c = b.a;
- // console.log(c)
- if (c = c.a ? c.a.getResponseHeader("Content-Type") : null) {
- // console.log('X ok 1')
- // console.log('c: ' + c)
- c = c.toLowerCase();
- if (0 == c.lastIndexOf("application/grpc-web-text", 0)) {
- c = b.a;
- // console.log('(c = b.a) c: ' + JSON.stringify(c.a))
- try {
- var d = c.a ? c.a.responseText : "";
- } catch (k) {
- // console.log("Can not get responseText: " + k.message)
- P(c.b, "Can not get responseText: " + k.message), d = "";
- }
- c = d || "";
- // console.log('(c = d || "") c: ' + c)
- // add by wzx
- if (c == '200 OK') c = "";
- d = c.length - c.length % 4;
- c = c.substr(b.i, d - b.i);
- if (0 == c.length) return;
- // console.log('X ok 3')
- b.i = d;
- c = Gc(c);
- } else if (0 == c.lastIndexOf("application/grpc", 0)) c = new Uint8Array(Bc(b.a));else {
- // console.log('Unknown Content-type received.')
- Y(b, new E(2, "Unknown Content-type received."));
- return;
- }
- d = null;
- try {
- // console.log(b.s)
- // console.log(c)
- d = Ha(b.s, c);
- } catch (k) {
- __f__("log", k, " at node_modules/grpc-web/index.js:1825");
- Y(b, new E(2, "Error in parsing response body"));
- }
- if (d) for (c = 0; c < d.length; c++) {
- if (Ia in d[c]) {
- var f = d[c][Ia];
- if (f) {
- var g = !1,
- e = void 0;
- try {
- e = b.m(f), g = !0;
- } catch (k) {
- Y(b, new E(13, "Error when deserializing response data; error: " + k + (", response: " + e)));
- }
- if (g) for (f = e, g = 0; g < b.b.length; g++) {
- b.b[g](f);
- }
- }
- }
- if (G in d[c] && 0 < d[c][G].length) {
- f = "";
- for (g = 0; g < d[c][G].length; g++) {
- f += String.fromCharCode(d[c][G][g]);
- }
- f = f.trim().split("\r\n");
- g = {};
- for (e = 0; e < f.length; e++) {
- var h = f[e].indexOf(":");
- g[f[e].substring(0, h).trim()] = f[e].substring(h + 1).trim();
- }
- f = g;
- g = 0;
- e = "";
- "grpc-status" in f && (g = Number(f["grpc-status"]), delete f["grpc-status"]);
- "grpc-message" in f && (e = f["grpc-message"], delete f["grpc-message"]);
- Y(b, new E(g, e, f));
- }
- }
- }
- });
- yb(this.a, "complete", function () {
- var c = b.a.g,
- d = 2,
- f = "",
- g = {},
- e = Dc(b.a);
- Object.keys(e).forEach(function (k) {
- Jc.includes(k) || (g[k] = e[k]);
- });
- Kc(b, g);
- var h = -1;
- if (0 != c) {
- switch (c) {
- case 7:
- d = 10;
- break;
- case 8:
- d = 4;
- break;
- case 6:
- h = b.a.getStatus();
- d = Aa(h);
- break;
- default:
- d = 14;
- }
- 10 == d && b.l || (f = Ca(c), -1 != h && (f += ", http status code: " + h), Y(b, new E(d, f)));
- } else h = !1, "grpc-status" in e && (d = Number(Cc(b.a, "grpc-status")), "grpc-message" in e && (f = Cc(b.a, "grpc-message")), 0 != d && (Y(b, new E(d, f || "", e)), h = !0)), h || Lc(b);
- });
- }
- X.prototype.on = function (a, b) {
- "data" == a ? this.b.push(b) : "status" == a ? this.h.push(b) : "metadata" == a ? this.g.push(b) : "end" == a ? this.c.push(b) : "error" == a && this.f.push(b);
- return this;
- };
- function Mc(a, b) {
- b = a.indexOf(b);
- -1 < b && a.splice(b, 1);
- }
- X.prototype.removeListener = function (a, b) {
- "data" == a ? Mc(this.b, b) : "status" == a ? Mc(this.h, b) : "metadata" == a ? Mc(this.g, b) : "end" == a ? Mc(this.c, b) : "error" == a && Mc(this.f, b);
- return this;
- };
- X.prototype.cancel = function () {
- this.l = !0;
- this.a.abort();
- };
- function Y(a, b) {
- if (0 != b.code) for (var c = new E(b.code, decodeURIComponent(b.message || ""), b.metadata), d = 0; d < a.f.length; d++) {
- a.f[d](c);
- }
- b = {
- code: b.code,
- details: decodeURIComponent(b.message || ""),
- metadata: b.metadata
- };
- for (c = 0; c < a.h.length; c++) {
- a.h[c](b);
- }
- }
- function Kc(a, b) {
- for (var c = 0; c < a.g.length; c++) {
- a.g[c](b);
- }
- }
- function Lc(a) {
- for (var b = 0; b < a.c.length; b++) {
- a.c[b]();
- }
- }
- X.prototype.cancel = X.prototype.cancel;
- X.prototype.removeListener = X.prototype.removeListener;
- X.prototype.on = X.prototype.on;
- function Nc(a) {
- var b = "";
- Sa(a, function (c, d) {
- b += d;
- b += ":";
- b += c;
- b += "\r\n";
- });
- return b;
- }
- ;
- function Z(a, b) {
- a = void 0 === a ? {} : a;
- this.a = a.format || y("format", a) || "text";
- this.g = a.aa || y("suppressCorsPreflight", a) || !1;
- this.f = a.withCredentials || y("withCredentials", a) || !1;
- this.b = a.$ || y("streamInterceptors", a) || [];
- this.h = a.ba || y("unaryInterceptors", a) || [];
- this.c = b || null;
- }
- Z.prototype.X = function (a, b, c, d, f) {
- var g = this,
- e = a.substr(0, a.length - d.name.length);
- a = Oc(function (h) {
- return Pc(g, h, e);
- }, this.b).call(this, za(d, b, c));
- Qc(a, f, !1);
- return new Ba(a);
- };
- Z.prototype.S = function (a, b, c, d) {
- var f = this,
- g = a.substr(0, a.length - d.name.length);
- return Oc(function (e) {
- return new Promise(function (h, k) {
- var l = Pc(f, e, g),
- m,
- p,
- q;
- Qc(l, function (w, z, M, Tb, Rc) {
- w ? k(w) : Rc ? q = z : M ? p = M : Tb ? m = Tb : (w = e.getMethodDescriptor(), z = m, z = void 0 === z ? {} : z, h(new D(q, w, z, void 0 === p ? null : p)));
- }, !0);
- });
- }, this.h).call(this, za(d, b, c)).then(function (e) {
- return e.getResponseMessage();
- });
- };
- Z.prototype.unaryCall = function (a, b, c, d) {
- return this.S(a, b, c, d);
- };
- Z.prototype.Y = function (a, b, c, d) {
- var f = this,
- g = a.substr(0, a.length - d.name.length);
- return Oc(function (e) {
- return Pc(f, e, g);
- }, this.b).call(this, za(d, b, c));
- };
- function Pc(a, b, c) {
- var d = b.getMethodDescriptor(),
- f = c + d.getName();
- c = a.c ? a.c : new qc();
- c.M = a.f;
- var g = new X({
- Z: c
- });
- g.m = d.b;
- var e = b.getMetadata();
- for (h in e) {
- c.headers.set(h, e[h]);
- }
- "text" == a.a ? (c.headers.set("Content-Type", "application/grpc-web-text"), c.headers.set("Accept", "application/grpc-web-text")) : c.headers.set("Content-Type", "application/grpc-web+proto");
- c.headers.set("X-User-Agent", "grpc-web-javascript/0.1");
- c.headers.set("X-Grpc-Web", "1");
- if (c.headers.has("deadline")) {
- var h = Number(c.headers.get("deadline"));
- h = Math.ceil(h - new Date().getTime());
- c.headers.delete("deadline");
- Infinity === h && (h = 0);
- 0 < h && (c.headers.set("grpc-timeout", h + "m"), c.h = Math.max(0, Math.max(1E3, Math.ceil(1.1 * h))));
- }
- if (a.g) {
- e = c.headers;
- h = {};
- for (var k = ha(e.keys()), l = k.next(); !l.done; l = k.next()) {
- l = l.value, h[l] = e.get(l);
- }
- c.headers.clear();
- b: {
- for (m in h) {
- var m = !1;
- break b;
- }
- m = !0;
- }
- if (!m) if (h = Nc(h), "string" === typeof f) {
- if (m = encodeURIComponent("$httpHeaders"), h = null != h ? "=" + encodeURIComponent(String(h)) : "", m += h) h = f.indexOf("#"), 0 > h && (h = f.length), e = f.indexOf("?"), 0 > e || e > h ? (e = h, k = "") : k = f.substring(e + 1, h), f = [f.substr(0, e), k, f.substr(h)], h = f[1], f[1] = m ? h ? h + "&" + m : m : h, f = f[0] + (f[1] ? "?" + f[1] : "") + f[2];
- } else f.a("$httpHeaders", h);
- }
- b = (0, d.a)(b.getRequestMessage());
- d = b.length;
- m = [0, 0, 0, 0];
- h = new Uint8Array(5 + d);
- for (e = 3; 0 <= e; e--) {
- m[e] = d % 256, d >>>= 8;
- }
- h.set(new Uint8Array(m), 1);
- h.set(b, 5);
- b = h;
- if ("text" == a.a) {
- a = b;
- var p;
- void 0 === p && (p = 0);
- Ic();
- p = Ec[p];
- b = Array(Math.floor(a.length / 3));
- d = p[64] || "";
- for (m = h = 0; h < a.length - 2; h += 3) {
- l = a[h];
- var q = a[h + 1];
- k = a[h + 2];
- e = p[l >> 2];
- l = p[(l & 3) << 4 | q >> 4];
- q = p[(q & 15) << 2 | k >> 6];
- k = p[k & 63];
- b[m++] = e + l + q + k;
- }
- e = 0;
- k = d;
- switch (a.length - h) {
- case 2:
- e = a[h + 1], k = p[(e & 15) << 2] || d;
- case 1:
- a = a[h], b[m] = p[a >> 2] + p[(a & 3) << 4 | e >> 4] + k + d;
- }
- b = b.join("");
- } else "binary" == a.a && (c.m = "arraybuffer");
- uc(c, f, b);
- return g;
- }
- function Qc(a, b, c) {
- var d = !1,
- f = null,
- g = !1;
- a.on("data", function (e) {
- d = !0;
- f = e;
- });
- a.on("error", function (e) {
- 0 == e.code || g || (g = !0, b(e, null));
- });
- a.on("status", function (e) {
- 0 == e.code || g ? c && b(null, null, e) : (g = !0, b({
- code: e.code,
- message: e.details,
- metadata: e.metadata
- }, null));
- });
- if (c) a.on("metadata", function (e) {
- b(null, null, null, e);
- });
- a.on("end", function () {
- g || (d ? c ? b(null, f, null, null, !0) : b(null, f) : b({
- code: 2,
- message: "Incomplete response"
- }));
- c && b(null, null);
- });
- }
- function Oc(a, b) {
- var c = a;
- b.forEach(function (d) {
- var f = c;
- c = function c(g) {
- return d.intercept(g, f);
- };
- });
- return c;
- }
- Z.prototype.serverStreaming = Z.prototype.Y;
- Z.prototype.unaryCall = Z.prototype.unaryCall;
- Z.prototype.thenableCall = Z.prototype.S;
- Z.prototype.rpcCall = Z.prototype.X;
- module.exports.CallOptions = xa;
- module.exports.MethodDescriptor = ya;
- module.exports.GrpcWebClientBase = Z;
- module.exports.RpcError = E;
- module.exports.StatusCode = {
- OK: 0,
- CANCELLED: 1,
- UNKNOWN: 2,
- INVALID_ARGUMENT: 3,
- DEADLINE_EXCEEDED: 4,
- NOT_FOUND: 5,
- ALREADY_EXISTS: 6,
- PERMISSION_DENIED: 7,
- UNAUTHENTICATED: 16,
- RESOURCE_EXHAUSTED: 8,
- FAILED_PRECONDITION: 9,
- ABORTED: 10,
- OUT_OF_RANGE: 11,
- UNIMPLEMENTED: 12,
- INTERNAL: 13,
- UNAVAILABLE: 14,
- DATA_LOSS: 15
- };
- module.exports.MethodType = {
- UNARY: "unary",
- SERVER_STREAMING: "server_streaming",
- BIDI_STREAMING: "bidi_streaming"
- };
- Kb = "undefined" !== typeof globalThis && globalThis || self;
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35), __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)["default"]))
- /***/ }),
- /* 47 */
- /*!****************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/utils/SqliteHelper.js ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _usqlite = __webpack_require__(/*! @/utils/usqlite.js */ 51);\nvar dbVersionModel, mapInfoModel;\nvar _default = {\n /**\r\n * 打开数据库\r\n * @param {string} dbName 数据库的名字\r\n * @param {int} version 数据库的版本\r\n * @return {object} 该函数会返回一个数据库实例\r\n */\n openDB: function openDB() {\n var _arguments = arguments;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var dbName, version, resDbVersion, localVersion;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dbName = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : 'Asistent';\n version = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : 1.00;\n _context.prev = 2;\n __f__(\"log\", \"[openDB] name: \".concat(dbName, \" version: \").concat(version), \" at utils/SqliteHelper.js:13\");\n _context.next = 6;\n return _usqlite.usqlite.connect({\n name: dbName,\n // 数据库名称\n path: \"_doc/\".concat(dbName, \"_record.db\") // 路径\n });\n case 6:\n __f__(\"log\", \"\\u6570\\u636E\\u5E93\\u6253\\u5F00\\u6210\\u529F name: \".concat(dbName, \" version: \").concat(version), \" at utils/SqliteHelper.js:18\");\n if (!(dbName == 'Asistent')) {\n _context.next = 31;\n break;\n }\n _context.next = 10;\n return _usqlite.usqlite.model('dbVersion', {\n version: {\n type: Number,\n default: 0\n }\n });\n case 10:\n dbVersionModel = _context.sent;\n _context.next = 13;\n return _usqlite.usqlite.model('mapInfo', {\n shopId: {\n type: Number,\n primaryKey: true\n },\n mapName: {\n type: String\n },\n zipImageMd5: {\n type: String\n },\n zipImageUrl: {\n type: String\n },\n zipFileName: {\n type: String\n },\n zipFileKey: {\n type: String\n }\n // zipFilePath:{\n // \ttype: String,\n // },\n // zipFileData:{\n // \ttype: 'BLOB',\n // }\n });\n case 13:\n mapInfoModel = _context.sent;\n _context.next = 16;\n return dbVersionModel.find();\n case 16:\n resDbVersion = _context.sent;\n // console.log(\"dbVersion:\", resDbVersion);\n localVersion = resDbVersion.length > 0 ? resDbVersion[0].version : '';\n __f__(\"log\", \"localVersion:\", localVersion, \" at utils/SqliteHelper.js:60\");\n if (!(localVersion == '')) {\n _context.next = 24;\n break;\n }\n _context.next = 22;\n return dbVersionModel.insert({\n version: version\n });\n case 22:\n _context.next = 31;\n break;\n case 24:\n if (!(localVersion < version)) {\n _context.next = 31;\n break;\n }\n __f__(\"warn\", \"\\u672C\\u5730\\u6570\\u636E\\u5E93\\u7248\\u672C\\u4F4E\\uFF0C\\u9700\\u8981\\u5347\\u7EA7\\uFF01 current:\".concat(localVersion, \" New:\").concat(version), \" at utils/SqliteHelper.js:65\");\n if (!(localVersion == 1)) {\n _context.next = 29;\n break;\n }\n _context.next = 29;\n return mapInfoModel.alter([{\n name: 'zipFileName',\n option: String\n }, {\n name: 'zipFileKey',\n option: String\n }\n // { name: 'zipFilePath', option: String }\n // { name: 'zipFileData', option: 'BLOB' }\n ]);\n case 29:\n _context.next = 31;\n return dbVersionModel.update({\n version: version\n });\n case 31:\n return _context.abrupt(\"return\", _usqlite.usqlite);\n case 34:\n _context.prev = 34;\n _context.t0 = _context[\"catch\"](2);\n __f__(\"log\", '[openDB] err', _context.t0, \" at utils/SqliteHelper.js:79\");\n throw _context.t0;\n case 38:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 34]]);\n }))();\n },\n insertMapData: function insertMapData(tableName, arrayBuffer) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context2.next = 7;\n break;\n }\n _context2.next = 4;\n return mapInfoModel.insertMapData(arrayBuffer);\n case 4:\n res = _context2.sent;\n __f__(\"log\", '[insertMapData] 成功', \" at utils/SqliteHelper.js:88\");\n return _context2.abrupt(\"return\", res);\n case 7:\n _context2.next = 13;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n __f__(\"error\", \"[insertMapData] 失败\", _context2.t0, \" at utils/SqliteHelper.js:92\");\n throw _context2.t0;\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 9]]);\n }))();\n },\n /**\r\n * 新增数据\r\n * @param {string} tableName 表名\r\n * @param {string} data 数据\r\n */\n insertData: function insertData(tableName, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var res;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context3.next = 7;\n break;\n }\n _context3.next = 4;\n return mapInfoModel.insert(data);\n case 4:\n res = _context3.sent;\n __f__(\"log\", '[insertData] 数据写入成功', \" at utils/SqliteHelper.js:106\");\n return _context3.abrupt(\"return\", res);\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n __f__(\"error\", \"[insertData] 数据写入失败\", _context3.t0, \" at utils/SqliteHelper.js:110\");\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[0, 9]]);\n }))();\n },\n /**\r\n * 更新数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {object} data 数据\r\n */\n updateData: function updateData(tableName, data) {\n var _arguments2 = arguments;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var options, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n options = _arguments2.length > 2 && _arguments2[2] !== undefined ? _arguments2[2] : '';\n _context4.prev = 1;\n if (!(tableName == 'mapInfo')) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return mapInfoModel.update(data, options);\n case 5:\n res = _context4.sent;\n __f__(\"log\", '[updateData] 数据更新成功', \" at utils/SqliteHelper.js:125\");\n return _context4.abrupt(\"return\", res);\n case 8:\n _context4.next = 14;\n break;\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", \"[updateData] 数据更新失败\", _context4.t0, \" at utils/SqliteHelper.js:129\");\n throw _context4.t0;\n case 14:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[1, 10]]);\n }))();\n },\n /**\r\n * 通过主键删除数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {object} key 主键值\r\n */\n deleteDataByKey: function deleteDataByKey(tableName, key) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var options, res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context5.next = 8;\n break;\n }\n options = 'shopId = ' + key;\n _context5.next = 5;\n return mapInfoModel.delete(options);\n case 5:\n res = _context5.sent;\n __f__(\"log\", '[deleteDataByKey] 数据删除成功', \" at utils/SqliteHelper.js:145\");\n return _context5.abrupt(\"return\", res);\n case 8:\n _context5.next = 14;\n break;\n case 10:\n _context5.prev = 10;\n _context5.t0 = _context5[\"catch\"](0);\n __f__(\"error\", \"[deleteDataByKey] 数据删除失败\", _context5.t0, \" at utils/SqliteHelper.js:149\");\n throw _context5.t0;\n case 14:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, null, [[0, 10]]);\n }))();\n },\n /**\r\n * 通过主键读取数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {string} key 主键值\r\n */\n getDataByKey: function getDataByKey(tableName, key) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var options, res;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context6.next = 8;\n break;\n }\n options = 'shopId = ' + key;\n _context6.next = 5;\n return mapInfoModel.find(options);\n case 5:\n res = _context6.sent;\n __f__(\"log\", '[getDataByKey] 数据读取成功', res, \" at utils/SqliteHelper.js:165\");\n return _context6.abrupt(\"return\", res[0]);\n case 8:\n _context6.next = 14;\n break;\n case 10:\n _context6.prev = 10;\n _context6.t0 = _context6[\"catch\"](0);\n __f__(\"error\", \"[getDataByKey] 数据读取失败\", _context6.t0, \" at utils/SqliteHelper.js:169\");\n throw _context6.t0;\n case 14:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, null, [[0, 10]]);\n }))();\n },\n /**\r\n * 关闭数据库\r\n * @param {object} db 数据库实例\r\n */\n closeDB: function closeDB() {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n _context7.next = 3;\n return _usqlite.usqlite.close();\n case 3:\n __f__(\"log\", \"关闭数据库成功\", \" at utils/SqliteHelper.js:181\");\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n __f__(\"error\", \"[closeDB] 关闭数据库失败\", _context7.t0, \" at utils/SqliteHelper.js:183\");\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[0, 6]]);\n }))();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvU3FsaXRlSGVscGVyLmpzIl0sIm5hbWVzIjpbImRiVmVyc2lvbk1vZGVsIiwibWFwSW5mb01vZGVsIiwib3BlbkRCIiwiZGJOYW1lIiwidmVyc2lvbiIsInVzcWxpdGUiLCJjb25uZWN0IiwibmFtZSIsInBhdGgiLCJtb2RlbCIsInR5cGUiLCJOdW1iZXIiLCJkZWZhdWx0Iiwic2hvcElkIiwicHJpbWFyeUtleSIsIm1hcE5hbWUiLCJTdHJpbmciLCJ6aXBJbWFnZU1kNSIsInppcEltYWdlVXJsIiwiemlwRmlsZU5hbWUiLCJ6aXBGaWxlS2V5IiwiZmluZCIsInJlc0RiVmVyc2lvbiIsImxvY2FsVmVyc2lvbiIsImxlbmd0aCIsImluc2VydCIsImFsdGVyIiwib3B0aW9uIiwidXBkYXRlIiwiaW5zZXJ0TWFwRGF0YSIsInRhYmxlTmFtZSIsImFycmF5QnVmZmVyIiwicmVzIiwiaW5zZXJ0RGF0YSIsImRhdGEiLCJ1cGRhdGVEYXRhIiwib3B0aW9ucyIsImRlbGV0ZURhdGFCeUtleSIsImtleSIsImRlbGV0ZSIsImdldERhdGFCeUtleSIsImNsb3NlREIiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFFQSxJQUFJQSxjQUFjLEVBQUVDLFlBQVk7QUFBQSxlQUNqQjtFQUNkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPQyxNQUFNLG9CQUFzQztJQUFBO0lBQUE7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQXJDQyxNQUFNLDBFQUFHLFVBQVU7Y0FBRUMsT0FBTywwRUFBRyxJQUFJO2NBQUE7Y0FFOUMsc0NBQThCRCxNQUFNLHVCQUFhQyxPQUFPO2NBQUk7Y0FBQSxPQUN0REMsZ0JBQU8sQ0FBQ0MsT0FBTyxDQUFDO2dCQUNyQkMsSUFBSSxFQUFFSixNQUFNO2dCQUFFO2dCQUNkSyxJQUFJLGlCQUFTTCxNQUFNLGVBQVksQ0FBRTtjQUNsQyxDQUFDLENBQUM7WUFBQTtjQUNGLHdFQUE2QkEsTUFB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Q0osR0FBRztjQUNQLGFBQVksMEJBQTBCO2NBQUUsa0NBQ2pDQSxHQUFHO1lBQUE7Y0FBQTtjQUFBO1lBQUE7Y0FBQTtjQUFBO2NBR1gsZUFBYywwQkFBMEI7Y0FBSztZQUFBO1lBQUE7Y0FBQTtVQUFBO1FBQUE7TUFBQTtJQUFBO0VBRy9DLENBQUM7RUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDT1EsWUFBWSx3QkFBQ1YsU0FBUyxFQUFFUSxHQUFHLEVBQUU7SUFBQTtNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtjQUFBLE1BRTdCUixTQUFTLElBQUksU0FBUztnQkFBQTtnQkFBQTtjQUFBO2NBQ3JCTSxPQUFPLEdBQUcsV0FBVyxHQUFHRSxHQUFHO2NBQUE7Y0FBQSxPQUNmckMsWUFBWSxDQUFDb0IsSUFBSSxDQUFDZSxPQUFPLENBQUM7WUFBQTtjQUF0Q0osR0FBRztjQUNQLGFBQVksdUJBQXVCLEVBQUVBLEdBQUc7Y0FBRSxrQ0FDbkNBLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFBQTtjQUFBO2NBQUE7WUFBQTtjQUFBO2NBQUE7Y0FHZCxlQUFjLHVCQUF1QjtjQUFLO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFHNUMsQ0FBQztFQUVEO0FBQ0Q7QUFDQTtBQUNBO0VBQ09TLE9BQU8scUJBQUc7SUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Y0FBQTtjQUFBLE9BRVJwQyxnQkFBTyxDQUFDcUMsS0FBSyxFQUFFO1lBQUE7Y0FDckIsYUFBWSxTQUFTO2NBQUU7Y0FBQTtZQUFBO2NBQUE7Y0FBQTtjQUV2QixlQUFjLG1CQUFtQjtjQUFLO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFHeEM7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c3FsaXRlIH0gZnJvbSAnQC91dGlscy91c3FsaXRlLmpzJ1xyXG5cclxudmFyIGRiVmVyc2lvbk1vZGVsLCBtYXBJbmZvTW9kZWxcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdC8qKlxyXG5cdCAqIOaJk+W8gOaVsOaNruW6k1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBkYk5hbWUg5pWw5o2u5bqT55qE5ZCN5a2XXHJcblx0ICogQHBhcmFtIHtpbnR9IHZlcnNpb24g5pWw5o2u5bqT55qE54mI5pysXHJcblx0ICogQHJldHVybiB7b2JqZWN0fSDor6Xlh73mlbDkvJrov5Tlm57kuIDkuKrmlbDmja7lupPlrp7kvotcclxuXHQgKi9cclxuXHRhc3luYyBvcGVuREIoZGJOYW1lID0gJ0FzaXN0ZW50JywgdmVyc2lvbiA9IDEuMDApIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGBbb3BlbkRCXSBuYW1lOiAke2RiTmFtZX0gdmVyc2lvbjogJHt2ZXJzaW9ufWApO1xyXG5cdFx0XHRhd2FpdCB1c3FsaXRlLmNvbm5lY3Qoe1xyXG5cdFx0XHRcdG5hbWU6IGRiTmFtZSwgLy8g5pWw5o2u5bqT5ZCN56ewXHJcblx0XHRcdFx0cGF0aDpgX2RvYy8ke2RiTmFtZX1fcmVjb3JkLmRiYCwgLy8g6Lev5b6EXHJcblx0XHRcdH0pO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhg5pWw5o2u5bqT5omT5byA5oiQ5YqfIG5hbWU6ICR7ZGJOYW1lfSB2ZXJzaW9uOiAke3ZlcnNpb259YCk7XHJcblx0XHRcdFxyXG5cdFx0XHRpZiAoZGJOYW1lID09ICdBc2lzdGVudCcpIHtcclxuXHRcdFx0XHRkYlZlcnNpb25Nb2RlbCA9IGF3YWl0IHVzcWxpdGUubW9kZWwoJ2RiVmVyc2lvbicse1xyXG5cdFx0XHRcdFx0dmVyc2lvbjp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRcdFx0ZGVmYXVsdDogMFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hcEluZm9Nb2RlbCA9IGF3YWl0IHVzcWxpdGUubW9kZWwoJ21hcEluZm8nLHtcclxuXHRcdFx0XHRcdHNob3BJZDp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRcdFx0cHJpbWFyeUtleTogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1hcE5hbWU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwSW1hZ2VNZDU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwSW1hZ2VVcmw6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwRmlsZU5hbWU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwRmlsZUtleTp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHQvLyB6aXBGaWxlUGF0aDp7XHJcblx0XHRcdFx0XHQvLyBcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHQvLyB6aXBGaWxlRGF0YTp7XHJcblx0XHRcdFx0XHQvLyBcdHR5cGU6ICdCTE9CJyxcclxuXHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHJcblx0XHRcdFx0bGV0IHJlc0RiVmVyc2lvbiA9IGF3YWl0IGRiVmVyc2lvbk1vZGVsLmZpbmQoKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiZGJWZXJzaW9uOlwiLCByZXNEYlZlcnNpb24pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGxldCBsb2NhbFZlcnNpb24gPSAocmVzRGJWZXJzaW9uLmxlbmd0aCA+IDApID8gcmVzRGJWZXJzaW9uWzBdLnZlcnNpb24gOiAnJ1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwibG9jYWxWZXJzaW9uOlwiLCBsb2NhbFZlcnNpb24pO1xyXG5cdFx0XHRcdGlmIChsb2NhbFZlcnNpb24gPT0gJycpIHtcclxuXHRcdFx0XHRcdGF3YWl0IGRiVmVyc2lvbk1vZGVsLmluc2VydCh7IHZlcnNpb246IHZlcnNpb24gfSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSBpZiAobG9jYWxWZXJzaW9uIDwgdmVyc2lvbikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKGDmnKzlnLDmlbDmja7lupPniYjmnKzkvY7vvIzpnIDopoHljYfnuqfvvIEgY3VycmVudDoke2xvY2FsVmVyc2lvbn0gTmV3OiR7dmVyc2lvbn1gKTtcclxuXHRcdFx0XHRcdGlmIChsb2NhbFZlcnNpb24gPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRhd2FpdCBtYXBJbmZvTW9kZWwuYWx0ZXIoW1xyXG5cdFx0XHRcdFx0XHRcdHsgbmFtZTogJ3ppcEZpbGVOYW1lJywgb3B0aW9uOiBTdHJpbmcgfSxcclxuXHRcdFx0XHRcdFx0XHR7IG5hbWU6ICd6aXBGaWxlS2V5Jywgb3B0aW9uOiBTdHJpbmcgfVxyXG5cdFx0XHRcdFx0XHRcdC8vIHsgbmFtZTogJ3ppcEZpbGVQYXRoJywgb3B0aW9uOiBTdHJpbmcgfVxyXG5cdFx0XHRcdFx0XHRcdC8vIHsgbmFtZTogJ3ppcEZpbGVEYXRhJywgb3B0aW9uOiAnQkxPQicgfVxyXG5cdFx0XHRcdFx0XHRdKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YXdhaXQgZGJWZXJzaW9uTW9kZWwudXBkYXRlKHsgdmVyc2lvbjogdmVyc2lvbiB9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdXNxbGl0ZTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tvcGVuREJdIGVycicsIGUpXHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdGFzeW5jIGluc2VydE1hcERhdGEodGFibGVOYW1lLCBhcnJheUJ1ZmZlcikge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKHRhYmxlTmFtZSA9PSAnbWFwSW5mbycpIHtcclxuXHRcdFx0XHRsZXQgcmVzID0gYXdhaXQgbWFwSW5mb01vZGVsLmluc2VydE1hcERhdGEoYXJyYXlCdWZmZXIpIFxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbaW5zZXJ0TWFwRGF0YV0g5oiQ5YqfJyk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCJbaW5zZXJ0TWFwRGF0YV0g5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHJcblx0fSxcclxuXHRcclxuXHQvKipcclxuXHQgKiDmlrDlop7mlbDmja5cclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIOaVsOaNrlxyXG5cdCAqL1xyXG5cdGFzeW5jIGluc2VydERhdGEodGFibGVOYW1lLCBkYXRhKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwuaW5zZXJ0KGRhdGEpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ1tpbnNlcnREYXRhXSDmlbDmja7lhpnlhaXmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIltpbnNlcnREYXRhXSDmlbDmja7lhpnlhaXlpLHotKVcIiwgZSk7XHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIOabtOaWsOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYiDmlbDmja7lupPlrp7kvotcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIOaVsOaNrlxyXG5cdCAqL1xyXG5cdGFzeW5jIHVwZGF0ZURhdGEodGFibGVOYW1lLCBkYXRhLCBvcHRpb25zPScnKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwudXBkYXRlKGRhdGEsIG9wdGlvbnMpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ1t1cGRhdGVEYXRhXSDmlbDmja7mm7TmlrDmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIlt1cGRhdGVEYXRhXSDmlbDmja7mm7TmlrDlpLHotKVcIiwgZSk7XHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIOmAmui/h+S4u+mUruWIoOmZpOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYiDmlbDmja7lupPlrp7kvotcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBrZXkg5Li76ZSu5YC8XHJcblx0ICovXHJcblx0YXN5bmMgZGVsZXRlRGF0YUJ5S2V5KHRhYmxlTmFtZSwga2V5KSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCBvcHRpb25zID0gJ3Nob3BJZCA9ICcgKyBrZXlcclxuXHRcdFx0XHRsZXQgcmVzID0gYXdhaXQgbWFwSW5mb01vZGVsLmRlbGV0ZShvcHRpb25zKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbZGVsZXRlRGF0YUJ5S2V5XSDmlbDmja7liKDpmaTmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIltkZWxldGVEYXRhQnlLZXldIOaVsOaNruWIoOmZpOWksei0pVwiLCBlKTtcclxuXHRcdFx0dGhyb3cgZVxyXG5cdFx0fVx0XHRcdFxyXG5cdH0sXHJcblx0XHJcblx0LyoqXHJcblx0ICog6YCa6L+H5Li76ZSu6K+75Y+W5pWw5o2uXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGRiIOaVsOaNruW6k+WunuS+i1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUg6KGo5ZCNXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IGtleSDkuLvplK7lgLxcclxuXHQgKi9cclxuXHRhc3luYyBnZXREYXRhQnlLZXkodGFibGVOYW1lLCBrZXkpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGlmICh0YWJsZU5hbWUgPT0gJ21hcEluZm8nKSB7XHJcblx0XHRcdFx0bGV0IG9wdGlvbnMgPSAnc2hvcElkID0gJyArIGtleVxyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwuZmluZChvcHRpb25zKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbZ2V0RGF0YUJ5S2V5XSDmlbDmja7or7vlj5bmiJDlip8nLCByZXMpO1xyXG5cdFx0XHRcdHJldHVybiByZXNbMF1cclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKFwiW2dldERhdGFCeUtleV0g5pWw5o2u6K+75Y+W5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHJcblx0fSxcclxuXHRcclxuXHQvKipcclxuXHQgKiDlhbPpl63mlbDmja7lupNcclxuXHQgKiBAcGFyYW0ge29iamVjdH0gZGIg5pWw5o2u5bqT5a6e5L6LXHJcblx0ICovXHJcblx0YXN5bmMgY2xvc2VEQigpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGF3YWl0IHVzcWxpdGUuY2xvc2UoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCLlhbPpl63mlbDmja7lupPmiJDlip9cIik7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCJbY2xvc2VEQl0g5YWz6Zet5pWw5o2u5bqT5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHRcdFx0XHJcblx0fVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n");
- /***/ }),
- /* 48 */
- /*!**********************************************************!*\
- !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
- \**********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
- // TODO(Babel 8): Remove this file.
- var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 49)();
- module.exports = runtime;
- // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
- try {
- regeneratorRuntime = runtime;
- } catch (accidentalStrictMode) {
- if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") {
- globalThis.regeneratorRuntime = runtime;
- } else {
- Function("r", "regeneratorRuntime = r")(runtime);
- }
- }
- /***/ }),
- /* 49 */
- /*!*******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
- \*******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
- function _regeneratorRuntime() {
- "use strict";
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
- module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
- return exports;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- var exports = {},
- Op = Object.prototype,
- hasOwn = Op.hasOwnProperty,
- defineProperty = Object.defineProperty || function (obj, key, desc) {
- obj[key] = desc.value;
- },
- $Symbol = "function" == typeof Symbol ? Symbol : {},
- iteratorSymbol = $Symbol.iterator || "@@iterator",
- asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
- toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
- function define(obj, key, value) {
- return Object.defineProperty(obj, key, {
- value: value,
- enumerable: !0,
- configurable: !0,
- writable: !0
- }), obj[key];
- }
- try {
- define({}, "");
- } catch (err) {
- define = function define(obj, key, value) {
- return obj[key] = value;
- };
- }
- function wrap(innerFn, outerFn, self, tryLocsList) {
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
- generator = Object.create(protoGenerator.prototype),
- context = new Context(tryLocsList || []);
- return defineProperty(generator, "_invoke", {
- value: makeInvokeMethod(innerFn, self, context)
- }), generator;
- }
- function tryCatch(fn, obj, arg) {
- try {
- return {
- type: "normal",
- arg: fn.call(obj, arg)
- };
- } catch (err) {
- return {
- type: "throw",
- arg: err
- };
- }
- }
- exports.wrap = wrap;
- var ContinueSentinel = {};
- function Generator() {}
- function GeneratorFunction() {}
- function GeneratorFunctionPrototype() {}
- var IteratorPrototype = {};
- define(IteratorPrototype, iteratorSymbol, function () {
- return this;
- });
- var getProto = Object.getPrototypeOf,
- NativeIteratorPrototype = getProto && getProto(getProto(values([])));
- NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
- var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
- function defineIteratorMethods(prototype) {
- ["next", "throw", "return"].forEach(function (method) {
- define(prototype, method, function (arg) {
- return this._invoke(method, arg);
- });
- });
- }
- function AsyncIterator(generator, PromiseImpl) {
- function invoke(method, arg, resolve, reject) {
- var record = tryCatch(generator[method], generator, arg);
- if ("throw" !== record.type) {
- var result = record.arg,
- value = result.value;
- return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
- invoke("next", value, resolve, reject);
- }, function (err) {
- invoke("throw", err, resolve, reject);
- }) : PromiseImpl.resolve(value).then(function (unwrapped) {
- result.value = unwrapped, resolve(result);
- }, function (error) {
- return invoke("throw", error, resolve, reject);
- });
- }
- reject(record.arg);
- }
- var previousPromise;
- defineProperty(this, "_invoke", {
- value: function value(method, arg) {
- function callInvokeWithMethodAndArg() {
- return new PromiseImpl(function (resolve, reject) {
- invoke(method, arg, resolve, reject);
- });
- }
- return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
- }
- });
- }
- function makeInvokeMethod(innerFn, self, context) {
- var state = "suspendedStart";
- return function (method, arg) {
- if ("executing" === state) throw new Error("Generator is already running");
- if ("completed" === state) {
- if ("throw" === method) throw arg;
- return doneResult();
- }
- for (context.method = method, context.arg = arg;;) {
- var delegate = context.delegate;
- if (delegate) {
- var delegateResult = maybeInvokeDelegate(delegate, context);
- if (delegateResult) {
- if (delegateResult === ContinueSentinel) continue;
- return delegateResult;
- }
- }
- if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
- if ("suspendedStart" === state) throw state = "completed", context.arg;
- context.dispatchException(context.arg);
- } else "return" === context.method && context.abrupt("return", context.arg);
- state = "executing";
- var record = tryCatch(innerFn, self, context);
- if ("normal" === record.type) {
- if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
- return {
- value: record.arg,
- done: context.done
- };
- }
- "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
- }
- };
- }
- function maybeInvokeDelegate(delegate, context) {
- var methodName = context.method,
- method = delegate.iterator[methodName];
- if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
- var record = tryCatch(method, delegate.iterator, context.arg);
- if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
- var info = record.arg;
- return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
- }
- function pushTryEntry(locs) {
- var entry = {
- tryLoc: locs[0]
- };
- 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
- }
- function resetTryEntry(entry) {
- var record = entry.completion || {};
- record.type = "normal", delete record.arg, entry.completion = record;
- }
- function Context(tryLocsList) {
- this.tryEntries = [{
- tryLoc: "root"
- }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
- }
- function values(iterable) {
- if (iterable) {
- var iteratorMethod = iterable[iteratorSymbol];
- if (iteratorMethod) return iteratorMethod.call(iterable);
- if ("function" == typeof iterable.next) return iterable;
- if (!isNaN(iterable.length)) {
- var i = -1,
- next = function next() {
- for (; ++i < iterable.length;) {
- if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
- }
- return next.value = undefined, next.done = !0, next;
- };
- return next.next = next;
- }
- }
- return {
- next: doneResult
- };
- }
- function doneResult() {
- return {
- value: undefined,
- done: !0
- };
- }
- return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
- value: GeneratorFunctionPrototype,
- configurable: !0
- }), defineProperty(GeneratorFunctionPrototype, "constructor", {
- value: GeneratorFunction,
- configurable: !0
- }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
- var ctor = "function" == typeof genFun && genFun.constructor;
- return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
- }, exports.mark = function (genFun) {
- return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
- }, exports.awrap = function (arg) {
- return {
- __await: arg
- };
- }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
- return this;
- }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
- void 0 === PromiseImpl && (PromiseImpl = Promise);
- var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
- return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
- return result.done ? result.value : iter.next();
- });
- }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
- return this;
- }), define(Gp, "toString", function () {
- return "[object Generator]";
- }), exports.keys = function (val) {
- var object = Object(val),
- keys = [];
- for (var key in object) {
- keys.push(key);
- }
- return keys.reverse(), function next() {
- for (; keys.length;) {
- var key = keys.pop();
- if (key in object) return next.value = key, next.done = !1, next;
- }
- return next.done = !0, next;
- };
- }, exports.values = values, Context.prototype = {
- constructor: Context,
- reset: function reset(skipTempReset) {
- if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {
- "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
- }
- },
- stop: function stop() {
- this.done = !0;
- var rootRecord = this.tryEntries[0].completion;
- if ("throw" === rootRecord.type) throw rootRecord.arg;
- return this.rval;
- },
- dispatchException: function dispatchException(exception) {
- if (this.done) throw exception;
- var context = this;
- function handle(loc, caught) {
- return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
- }
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i],
- record = entry.completion;
- if ("root" === entry.tryLoc) return handle("end");
- if (entry.tryLoc <= this.prev) {
- var hasCatch = hasOwn.call(entry, "catchLoc"),
- hasFinally = hasOwn.call(entry, "finallyLoc");
- if (hasCatch && hasFinally) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- } else if (hasCatch) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- } else {
- if (!hasFinally) throw new Error("try statement without catch or finally");
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- }
- }
- }
- },
- abrupt: function abrupt(type, arg) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
- var finallyEntry = entry;
- break;
- }
- }
- finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
- var record = finallyEntry ? finallyEntry.completion : {};
- return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
- },
- complete: function complete(record, afterLoc) {
- if ("throw" === record.type) throw record.arg;
- return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
- },
- finish: function finish(finallyLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
- }
- },
- "catch": function _catch(tryLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc === tryLoc) {
- var record = entry.completion;
- if ("throw" === record.type) {
- var thrown = record.arg;
- resetTryEntry(entry);
- }
- return thrown;
- }
- }
- throw new Error("illegal catch attempt");
- },
- delegateYield: function delegateYield(iterable, resultName, nextLoc) {
- return this.delegate = {
- iterator: values(iterable),
- resultName: resultName,
- nextLoc: nextLoc
- }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
- }
- }, exports;
- }
- module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 50 */
- /*!*****************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
- \*****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
- if (info.done) {
- resolve(value);
- } else {
- Promise.resolve(value).then(_next, _throw);
- }
- }
- function _asyncToGenerator(fn) {
- return function () {
- var self = this,
- args = arguments;
- return new Promise(function (resolve, reject) {
- var gen = fn.apply(self, args);
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
- _next(undefined);
- });
- };
- }
- module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 51 */
- /*!***********************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/utils/usqlite.js ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.usqlite = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 52));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 53));\n/**\r\n * 对 SQLite 的 ORM 的封装处理\r\n * @time 2023-04-06\r\n * @version 2.0.0\r\n * @by wzx\r\n */\n\nvar config = {\n deBug: true,\n isConnect: false\n};\n// class Response {\n// \tconstructor(code, msg, data) {\n// \t\tthis.code = code;\n// \t\tthis.msg = msg;\n// \t\tthis.data = data;\n// \t}\n// \ttoString() {\n// \t\treturn JSON.stringify(this);\n// \t}\n// }\nvar Utils = /*#__PURE__*/function () {\n function Utils() {\n (0, _classCallCheck2.default)(this, Utils);\n }\n (0, _createClass2.default)(Utils, null, [{\n key: \"modelSql\",\n value: function modelSql(name, options) {\n var sql;\n var sqlArr = [];\n var primaryKeyArr = [];\n Utils.log('[modelSql] options:', options);\n for (var key in options) {\n if (Object.hasOwnProperty.call(options, key)) {\n var option = options[key];\n sqlArr.push(Utils.restrain(key, option));\n if (option.primaryKey == true) {\n primaryKeyArr.push(key.toString());\n Utils.log(\"[modelSql] \".concat(key, \" is primary key\").concat(primaryKeyArr.length));\n }\n }\n }\n Utils.log(primaryKeyArr.length);\n if (primaryKeyArr.length > 1) {\n sql = \"CREATE TABLE '\".concat(name, \"' (\").concat(sqlArr.join(', ').replaceAll(' PRIMARY KEY', ''), \", PRIMARY KEY (\").concat(primaryKeyArr.join(), \"))\");\n } else {\n sql = \"CREATE TABLE '\".concat(name, \"' (\").concat(sqlArr.join(', '), \")\");\n }\n Utils.log(\"[modelSql] \".concat(sql));\n return sql;\n }\n }, {\n key: \"restrain\",\n value: function restrain(key, options) {\n var restrainArray = [];\n restrainArray.push(\"'\".concat(key, \"'\"));\n\n // 如果是 String 拦截处理\n if (options.constructor != Object) {\n restrainArray.push(Utils.toType(options));\n return restrainArray.join(' ');\n }\n restrainArray.push(Utils.toType(options.type));\n\n // 主键\n if (options.primaryKey == true) {\n if (options.autoIncrement != true) {\n restrainArray.push('PRIMARY KEY');\n }\n }\n\n // 自增\n if (Utils.isNumber(options.type) && options.autoIncrement == true) {\n restrainArray.pop();\n restrainArray.push('INTEGER');\n restrainArray.push('PRIMARY KEY');\n restrainArray.push('AUTOINCREMENT');\n }\n\n // 非空\n if (options.notNull == true) {\n restrainArray.push('NOT NULL');\n }\n\n // 默认值\n if (options.default) {\n restrainArray.push(\"DEFAULT \".concat(options.default));\n }\n\n // 是否是不同的值\n if (options.unique == true) {\n restrainArray.push('UNIQUE');\n }\n\n // 检查\n if (options.check) {\n restrainArray.push(\"CHECK(\".concat(THIS_VALUE.check, \")\"));\n }\n return restrainArray.join(' ');\n }\n }, {\n key: \"toType\",\n value: function toType(jsType) {\n var sqliteType = '';\n if (Utils.isNumber(jsType)) {\n sqliteType = 'numeric';\n } else if (Utils.isDate(jsType)) {\n sqliteType = 'timestamp';\n } else if (Utils.isBlob(jsType)) {\n sqliteType = 'BLOB';\n } else {\n sqliteType = 'varchar';\n }\n return sqliteType;\n }\n }, {\n key: \"log\",\n value: function log() {\n if (config.deBug) {\n console.log.apply(null, arguments);\n }\n }\n }, {\n key: \"warn\",\n value: function warn() {\n if (config.deBug) {\n console.warn.apply(null, arguments);\n }\n }\n }, {\n key: \"error\",\n value: function error() {\n console.error.apply(null, arguments);\n }\n }, {\n key: \"isBlob\",\n value: function isBlob(value) {\n return value === 'BLOB';\n }\n }, {\n key: \"isArray\",\n value: function isArray(value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n }\n }, {\n key: \"isObject\",\n value: function isObject(value) {\n return Object.prototype.toString.call(value) === '[object Object]';\n }\n }, {\n key: \"isString\",\n value: function isString(value) {\n return Object.prototype.toString.call(value) === '[object String]';\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(value) {\n return value === Function || Object.prototype.toString.call(value) === '[object Function]';\n }\n }, {\n key: \"isNumber\",\n value: function isNumber(value) {\n return value === Number || Object.prototype.toString.call(value) === '[object Number]';\n }\n }, {\n key: \"isNaN\",\n value: function (_isNaN) {\n function isNaN(_x) {\n return _isNaN.apply(this, arguments);\n }\n isNaN.toString = function () {\n return _isNaN.toString();\n };\n return isNaN;\n }(function (value) {\n return Object.prototype.toString.call(value) === '[object Number]' && isNaN(value);\n })\n }, {\n key: \"isBoolean\",\n value: function isBoolean(value) {\n return Object.prototype.toString.call(value) === '[object Boolean]';\n }\n }, {\n key: \"isUndefined\",\n value: function isUndefined(value) {\n return Object.prototype.toString.call(value) === '[object Undefined]';\n }\n }, {\n key: \"isModel\",\n value: function isModel(value) {\n return Object.prototype.toString.call(value) === '[object Model]';\n }\n }, {\n key: \"isDate\",\n value: function isDate(value) {\n return value === Date || Object.prototype.toString.call(value) === '[object Date]';\n }\n }]);\n return Utils;\n}();\n/**\r\n * Model 对象内部public方法全部 return this;\r\n */\nvar Model = /*#__PURE__*/function () {\n /**\r\n * @constructor\r\n * @param {String} name 数据库表名\r\n * @param {} options 数据表列对象\r\n * @returns \r\n */\n function Model() {\n (0, _classCallCheck2.default)(this, Model);\n } // constructor(name, options) {\n // this.init(name, options)\n\n // let self = this;\n // self.name = name;\n // self.options = options;\n\n // if (config.isConnect) {\n // \tself.repair();\n // } else {\n // \tif(!config.name||!config.path){\n // \t\tconsole.error('\"config.name\" or \"config.path\" is empty');\n // \t}\n // \tusqlite.connect(config);\n // }\n\n /**\r\n * @param {String} name 数据库表名\r\n * @param {} options 数据表列对象\r\n * @returns \r\n */\n (0, _createClass2.default)(Model, [{\n key: \"init\",\n value: function () {\n var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(name, options) {\n var self;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n self = this;\n self.name = name;\n self.options = options;\n if (!config.isConnect) {\n _context.next = 8;\n break;\n }\n _context.next = 6;\n return self.repair();\n case 6:\n _context.next = 11;\n break;\n case 8:\n if (!config.name || !config.path) {\n __f__(\"error\", '\"config.name\" or \"config.path\" is empty', \" at utils/usqlite.js:189\");\n }\n _context.next = 11;\n return usqlite.connect(config);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n function init(_x2, _x3) {\n return _init.apply(this, arguments);\n }\n return init;\n }()\n /**\r\n * @description 查询表数据\r\n * @param {String|Array} options \r\n * - String WHERE 内容\r\n * - Array 需要查询的列\r\n * @returns \r\n */\n }, {\n key: \"find\",\n value: function find() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var sql = '';\n // let self = this;\n // self.repair();\n\n if (!(Utils.isString(options) || Utils.isArray(options) || Utils.isFunction(options))) {\n Utils.error('The first parameter of Model.find should be \"Array\", \"String\" or \"Function\" (when there is only one parameter).');\n }\n if (options == '') {\n sql = \"SELECT * FROM '\".concat(this.name, \"'\"); // 查找全部\n } else if (Utils.isArray(options)) {\n sql = \"SELECT \".concat(options.join(), \" FROM '\").concat(this.name, \"'\"); // 查找制定列\n } else if (Utils.isString(options)) {\n sql = \"SELECT * FROM '\".concat(this.name, \"' WHERE \").concat(options); // 制定条件查询\n }\n\n Utils.log(\"[find]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[find] res:', res, \" at utils/usqlite.js:225\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[find] err:', err, \" at utils/usqlite.js:229\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 分页查询\r\n * @param {Object} options : { where:查询条件, number: 当前页数 , count : 每页数量 }\r\n * @return\r\n */\n }, {\n key: \"limit\",\n value: function limit(options) {\n var sql = '';\n // let self = this;\n // self.repair();\n if (!Utils.isObject(options)) {\n Utils.error('The first parameter of Model.limit should be \"Object\".');\n }\n if (!options.where) {\n // 不存在 where\n sql = \"SELECT * FROM '\".concat(this.name, \"' LIMIT \").concat(options.count, \" OFFSET \").concat((options.number - 1) * options.count);\n } else {\n // 存在 where\n sql = \"SELECT * FROM '\".concat(this.name, \"' WHERE \").concat(options.where, \" LIMIT \").concat(options.count, \" OFFSET \").concat((options.number - 1) * options.count);\n }\n ;\n Utils.log(\"[limit]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[limit] res:', res, \" at utils/usqlite.js:266\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[limit] err:', err, \" at utils/usqlite.js:270\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 插入数据\r\n * @param {Object|Array} data: 需要插入的单个或者多个数据\r\n */\n }, {\n key: \"insert\",\n value: function () {\n var _insert = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {\n var i, keys, values, key, sql;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n // let self = this;\n // self.repair();\n\n if (!(Utils.isObject(data) || Util.isArray(data))) {\n Utils.error('The first parameter of Model.insert should be \"Object\" or \"Array\".');\n }\n if (!config.isConnect) {\n _context2.next = 20;\n break;\n }\n if (!Utils.isArray(data)) {\n _context2.next = 13;\n break;\n }\n i = 0;\n case 4:\n if (!(i < data.length)) {\n _context2.next = 10;\n break;\n }\n _context2.next = 7;\n return this.insert(data[i]);\n case 7:\n i++;\n _context2.next = 4;\n break;\n case 10:\n return _context2.abrupt(\"return\");\n case 13:\n if (!Utils.isObject(data)) {\n _context2.next = 20;\n break;\n }\n keys = [];\n values = []; // let index = arguments[3]??null;\n for (key in data) {\n keys.push(key);\n values.push(\"'\".concat(data[key], \"'\"));\n }\n sql = \"INSERT INTO '\".concat(this.name, \"' (\").concat(keys.join(), \") VALUES (\").concat(values.join(), \")\");\n Utils.log(\"[insert]: \".concat(sql));\n return _context2.abrupt(\"return\", new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[insert] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[insert] err:', err, \" at utils/usqlite.js:317\");\n reject(err);\n }\n });\n }));\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n function insert(_x4) {\n return _insert.apply(this, arguments);\n }\n return insert;\n }()\n /**\r\n * @description 更新数据\r\n * @param {Object} data: 修改后的数据 \r\n * @param {String} options:可选参数 更新条件\r\n */\n }, {\n key: \"update\",\n value: function update(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n // let self = this;\n // self.repair();\n var sql = '';\n var items = [];\n if (!Utils.isObject(data)) {\n Utils.error('The first parameter of Model.update should be \"Objrct\".');\n }\n if (!(Utils.isObject(options) || Utils.isString(options))) {\n Utils.error('The second parameter of Model.update should be \"Object\" or \"String\".');\n }\n for (var key in data) {\n items.push(\"\".concat(key, \"='\").concat(data[key], \"'\"));\n }\n ;\n if (options == '') {\n sql = \"UPDATE '\".concat(this.name, \"' SET \").concat(items.join());\n } else {\n sql = \"UPDATE \".concat(this.name, \" SET \").concat(items.join(), \" WHERE \").concat(options);\n }\n ;\n Utils.log(\"[update]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[update] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[update] err:', err, \" at utils/usqlite.js:364\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 删除数据\r\n * @param {String} options :可选参数 删除条件\r\n */\n }, {\n key: \"delete\",\n value: function _delete() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n // let self = this;\n // self.repair();\n var sql = '';\n if (!(Utils.isString(options) || Utils.isFunction(options))) {\n Utils.error('The first parameter of Model.delete should be \"Object\" or \"Function\".');\n }\n if (options == '') {\n sql = \"DELETE FROM '\".concat(this.name, \"'\");\n } else {\n sql = \"DELETE FROM '\".concat(this.name, \"' WHERE \").concat(options);\n }\n ;\n Utils.log(\"[delete]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[delete] res:', res, \" at utils/usqlite.js:396\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[delete] err:', err, \" at utils/usqlite.js:400\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 重命名或者新增列\r\n * @param {Object|Array|String} options 参数 数组为新增多列 对象为新增单列{aa} 字符串重命名\r\n * @return: \r\n */\n }, {\n key: \"alter\",\n value: function () {\n var _alter = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(options) {\n var self, sql, i, column;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n self = this; // self.repair();\n sql = '';\n if (!(Utils.isObject(options) || Utils.isArray(options) || Utils.isString(options))) {\n Utils.error('The first parameter of Model.alter should be \"Object\", \"Array\" or \"String\".');\n }\n if (!Utils.isArray(options)) {\n _context3.next = 14;\n break;\n }\n i = 0;\n case 5:\n if (!(i < options.length)) {\n _context3.next = 11;\n break;\n }\n _context3.next = 8;\n return this.alter(options[i]);\n case 8:\n i++;\n _context3.next = 5;\n break;\n case 11:\n return _context3.abrupt(\"return\");\n case 14:\n if (Utils.isObject(options)) {\n // 新增单列\n column = Utils.restrain(options.name, options.option);\n sql = \"ALTER TABLE '\".concat(this.name, \"' ADD COLUMN \").concat(column);\n } else if (options.constructor == String) {\n // 重命名\n sql = \"ALTER TABLE '\".concat(this.name, \"' RENAME TO '\").concat(options, \"'\");\n }\n case 15:\n Utils.log(\"[alter]: \".concat(sql));\n return _context3.abrupt(\"return\", new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n if (options.constructor == String) {\n // 重命名\n self.name = options;\n }\n // console.log('[alter] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[alter] err:', err, \" at utils/usqlite.js:446\");\n reject(err);\n }\n });\n }));\n case 17:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function alter(_x5) {\n return _alter.apply(this, arguments);\n }\n return alter;\n }()\n /**\r\n * @description \r\n * @param {Model} model 右 Model\r\n * @param {Object} options \r\n * @returns \r\n */\n }, {\n key: \"join\",\n value: function join(model, options) {\n // let self = this;\n // self.repair();\n if (!model) {\n Utils.error('\"model\" cannot be empty.');\n }\n if (!Utils.isObject(options)) {\n Utils.error('The type of \"options\" is wrong, it should be \"Object\".');\n }\n if (!options.type || !options.predicate) {\n Utils.error('Missing required parameters');\n }\n var leftName = this.name;\n var rightName = model.name;\n var leftValue = options.predicate.left;\n var rightValue = options.predicate.right;\n var cols = ['*'];\n var SQL_MAP = {\n cross: \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" CROSS JOIN \").concat(rightName, \";\"),\n inner: [\"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" NATURAL JOIN \").concat(rightName), \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" INNER JOIN \").concat(rightName, \" ON \").concat(leftName, \".\").concat(leftValue, \" = \").concat(rightName, \".\").concat(rightValue)],\n outer: \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" OUTER JOIN \").concat(rightName, \" ON \").concat(leftName, \".\").concat(leftValue, \" = \").concat(rightName, \".\").concat(rightValue)\n };\n var sql = '';\n if (options.type == inner && !options.predicate) {\n sql = SQL_MAP[options.type][0];\n } else if (options.type == inner && !options.predicate) {\n sql = SQL_MAP[options.type][1];\n } else {\n sql = SQL_MAP[options.type];\n }\n Utils.log(\"[join]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[join] res:', res, \" at utils/usqlite.js:502\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[join] err:', err, \" at utils/usqlite.js:506\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 执行sql语句\r\n * @param {String} sql : sql语句\r\n */\n }, {\n key: \"sql\",\n value: function sql(_sql) {\n if (!Utils.isString(_sql)) {\n Utils.error('\"The type of \"sql\" is wrong, it should be \"String\".');\n }\n\n // let self = this;\n // self.repair();\n\n Utils.log(\"[sql]: \".concat(_sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: _sql,\n success: function success(res) {\n __f__(\"log\", '[sql] res:', res, \" at utils/usqlite.js:532\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[sql] err:', err, \" at utils/usqlite.js:536\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 判断表是否存在 \r\n */\n }, {\n key: \"insertMapData\",\n value: function insertMapData(arrayBuffer) {\n __f__(\"log\", 'arrayBuffer', arrayBuffer, \" at utils/usqlite.js:547\");\n var zipFileData = this.byteArrayToHexString(arrayBuffer);\n __f__(\"log\", 'zipFileData', zipFileData, \" at utils/usqlite.js:549\");\n var sql = \"INSERT INTO 'mapInfo' (shopId,mapName,zipImageUrl,zipImageMd5,zipFileName,zipFileData) \\n\\t\\tVALUES ('1','\\u8DEF\\u7EBF\\u56FE','http://www.beswell.com/download/\\u9F50\\u6E90\\u5927\\u53A6_\\u5DF2\\u4FEE\\u6539.zip','MTExMQ==','\\u9F50\\u6E90\\u5927\\u53A6_\\u5DF2\\u4FEE\\u6539.tif', x'\".concat(zipFileData, \"')\");\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[insertMapData] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[insertMapData] err:', err, \" at utils/usqlite.js:563\");\n reject(err);\n }\n });\n });\n }\n }, {\n key: \"byteArrayToHexString\",\n value: function byteArrayToHexString(arrayBuffer) {\n // converts byte arrays to string\n var i, j, inn;\n var hex = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\"];\n var out = \"\";\n for (j = 0; j < arrayBuffer.length; ++j) {\n inn = arrayBuffer[j] & 0xff;\n i = inn >>> 4 & 0x0f;\n out += hex[i];\n i = inn & 0x0f;\n out += hex[i];\n }\n return out;\n }\n\n /**\r\n * @description 判断表是否存在 \r\n */\n }, {\n key: \"isExist\",\n value: function isExist() {\n var sql = \"SELECT count(*) AS isExist FROM sqlite_master WHERE type='table' AND name='\".concat(this.name, \"'\");\n // Utils.log(`[isExist] ${config.name}`);\n // Utils.log(`[isExist] ${sql}`);\n\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[isExist] res:', res)\n if (res[0].isExist == 1) __f__(\"log\", \"[isExist] \".concat(config.name, \" \\u5DF2\\u5B58\\u5728\"), \" at utils/usqlite.js:600\");else __f__(\"log\", \"[isExist] \".concat(config.name, \" \\u4E0D\\u5B58\\u5728\"), \" at utils/usqlite.js:602\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[isExist] err:', err, \" at utils/usqlite.js:606\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 删除数据表 **不推荐**\r\n */\n }, {\n key: \"drop\",\n value: function drop() {\n var sql = \"DROP TABLE '\".concat(this.name, \"'\");\n // let self = this;\n // self.repair();\n\n Utils.log(\"[drop]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[drop] res:', res, \" at utils/usqlite.js:628\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[drop] err:', err, \" at utils/usqlite.js:632\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 创建数据表 **不推荐**\r\n */\n }, {\n key: \"create\",\n value: function create() {\n // let self = this;\n var sql = Utils.modelSql(this.name, this.options);\n Utils.log(\"[create]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[create] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[create] err:', err, \" at utils/usqlite.js:656\");\n reject(err);\n }\n });\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"[\".concat(this.name, \" Model]\");\n }\n }, {\n key: \"repair\",\n value: function () {\n var _repair = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var self, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n self = this;\n _context4.prev = 1;\n _context4.next = 4;\n return self.isExist();\n case 4:\n res = _context4.sent;\n if (res[0].isExist) {\n _context4.next = 8;\n break;\n }\n _context4.next = 8;\n return self.create();\n case 8:\n _context4.next = 13;\n break;\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", _context4.t0, \" at utils/usqlite.js:676\");\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this, [[1, 10]]);\n }));\n function repair() {\n return _repair.apply(this, arguments);\n }\n return repair;\n }()\n }]);\n return Model;\n}(); // 单例模式\nvar usqlite = /*#__PURE__*/function () {\n /**\r\n * 构造函数\r\n * @param {Object} options 数据库配置信息 *\r\n * {name: 'demo', path: '_doc/demo.db'}\r\n * - name 数据库名称*\r\n * - path 数据库路径\r\n */\n function usqlite(options) {\n (0, _classCallCheck2.default)(this, usqlite);\n __f__(\"warn\", 'No instantiation', \" at utils/usqlite.js:694\");\n }\n\n /**\r\n * @description 链接数据库\r\n * @param {Object} options 数据库配置信息 *\r\n * {name: 'demo', path: '_doc/demo.db'}\r\n * - name 数据库名称*\r\n * - path 数据库路径\r\n */\n (0, _createClass2.default)(usqlite, null, [{\n key: \"connect\",\n value: function connect(options) {\n config.name = options.name; // 数据库名称*\n config.path = options.path; // 数据库名称*\n\n if (config.isConnect) {\n __f__(\"warn\", '[connect] 数据库已连接,无需重连', \" at utils/usqlite.js:709\");\n return;\n }\n return new Promise(function (resolve, reject) {\n plus.sqlite.openDatabase({\n name: config.name,\n //数据库名称\n path: config.path,\n //数据库地址\n success: function success(res) {\n config.isConnect = true;\n // console.log('[connect] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n if (e.code == -1402) {\n config.isConnect = true;\n __f__(\"warn\", '[connect] warn:', err, \" at utils/usqlite.js:725\");\n } else {\n config.isConnect = false;\n __f__(\"error\", '[connect] err:', err, \" at utils/usqlite.js:728\");\n }\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 断开数据库\r\n * @param {*} callback \r\n */\n }, {\n key: \"close\",\n value: function close() {\n return new Promise(function (resolve, reject) {\n plus.sqlite.closeDatabase({\n name: config.name,\n //数据库名称\n path: config.path,\n //数据库地址\n success: function success(res) {\n config.isConnect = false;\n // console.log('[close] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[close] err:', err, \" at utils/usqlite.js:751\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 创建 Model 对象\r\n * @example\r\n * usqlite.model('demo',\r\n * {\r\n * \t\tid: {\r\n * \t\t\ttype: Number\r\n * \t\t},\r\n * \t\tcontent: String\r\n * })\r\n * @param {String} name 数据表名称 *\r\n * @param {String} options 参数配置 *\r\n * @returns 返回 Model 对象\r\n */\n }, {\n key: \"model\",\n value: function () {\n var _model = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(name, options) {\n var model;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n Utils.log(config);\n // return new Model(name, options);\n model = new Model();\n _context5.next = 4;\n return model.init(name, options);\n case 4:\n return _context5.abrupt(\"return\", model);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n function model(_x6, _x7) {\n return _model.apply(this, arguments);\n }\n return model;\n }()\n }]);\n return usqlite;\n}();\nexports.usqlite = usqlite;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvdXNxbGl0ZS5qcyJdLCJuYW1lcyI6WyJjb25maWciLCJkZUJ1ZyIsImlzQ29ubmVjdCIsIlV0aWxzIiwibmFtZSIsIm9wdGlvbnMiLCJzcWwiLCJzcWxBcnIiLCJwcmltYXJ5S2V5QXJyIiwibG9nIiwia2V5IiwiT2JqZWN0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwib3B0aW9uIiwicHVzaCIsInJlc3RyYWluIiwicHJpbWFyeUtleSIsInRvU3RyaW5nIiwibGVuZ3RoIiwiam9pbiIsInJlcGxhY2VBbGwiLCJyZXN0cmFpbkFycmF5IiwiY29uc3RydWN0b3IiLCJ0b1R5cGUiLCJ0eXBlIiwiYXV0b0luY3JlbWVudCIsImlzTnVtYmVyIiwicG9wIiwibm90TnVsbCIsImRlZmF1bHQiLCJ1bmlxdWUiLCJjaGVjayIsIlRISVNfVkFMVUUiLCJqc1R5cGUiLCJzcWxpdGVUeXBlIiwiaXNEYXRlIiwiaXNCbG9iIiwiY29uc29sZSIsImFwcGx5IiwiYXJndW1lbnRzIiwid2FybiIsImVycm9yIiwidmFsdWUiLCJwcm90b3R5cGUiLCJGdW5jdGlvbiIsIk51bWJlciIsImlzTmFOIiwiRGF0ZSIsIk1vZGVsIiwic2VsZiIsInJlcGFpciIsInBhdGgiLCJ1c3FsaXRlIiwiY29ubmVjdCIsImlzU3RyaW5nIiwiaXNBcnJheSIsImlzRnVuY3Rpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInBsdXMiLCJzcWxpdGUiLCJzZWxlY3RTcWwiLCJzdWNjZXNzIiwicmVzIiwiZmFpbCIsImVyciIsImlzT2JqZWN0Iiwid2hlcmUiLCJjb3VudCIsIm51bWJlciIsImRhdGEiLCJVdGlsIiwiaSIsImluc2VydCIsImtleXMiLCJ2YWx1ZXMiLCJleGVjdXRlU3FsIiwiaXRlbXMiLCJhbHRlciIsImNvbHVtbiIsIlN0cmluZyIsIm1vZGVsIiwicHJlZGljYXRlIiwibGVmdE5hbWUiLCJyaWdodE5hbWUiLCJsZWZ0VmFsdWUiLCJsZWZ0IiwicmlnaHRWYWx1ZSIsInJpZ2h0IiwiY29scyIsIlNRTF9NQVAiLCJjcm9zcyIsImlubmVyIiwib3V0ZXIiLCJhcnJheUJ1ZmZlciIsInppcEZpbGVEYXRhIiwiYnl0ZUFycmF5VG9IZXhTdHJpbmciLCJqIiwiaW5uIiwiaGV4Iiwib3V0IiwiaXNFeGlzdCIsIm1vZGVsU3FsIiwiY3JlYXRlIiwib3BlbkRhdGFiYXNlIiwiZSIsImNvZGUiLCJjbG9zZURhdGFiYXNlIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsTUFBTSxHQUFHO0VBQ1pDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLFNBQVMsRUFBRTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBRU1DLEtBQUs7RUFBQTtJQUFBO0VBQUE7RUFBQTtJQUFBO0lBQUEsT0FDVixrQkFBZ0JDLElBQUksRUFBRUMsT0FBTyxFQUFFO01BQzlCLElBQUlDLEdBQUc7TUFDUCxJQUFJQyxNQUFNLEdBQUcsRUFBRTtNQUNmLElBQUlDLGFBQWEsR0FBRyxFQUFFO01BQ3RCTCxLQUFLLENBQUNNLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRUosT0FBTyxDQUFDO01BRXpDLEtBQUssSUFBTUssR0FBRyxJQUFJTCxPQUFPLEVBQUU7UUFDMUIsSUFBSU0sTUFBTSxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsT0FBTyxFQUFFSyxHQUFHLENBQUMsRUFBRTtVQUM3QyxJQUFNSSxNQUFNLEdBQUdULE9BQU8sQ0FBQ0ssR0FBRyxDQUFDO1VBQzNCSCxNQUFNLENBQUNRLElBQUksQ0FBQ1osS0FBSyxDQUFDYSxRQUFRLENBQUNOLEdBQUcsRUFBRUksTUFBTSxDQUFDLENBQUM7VUFDeEMsSUFBSUEsTUFBTSxDQUFDRyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzlCVCxhQUFhLENBQUNPLElBQUksQ0FBQ0wsR0FBRyxDQUFD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QUN6QnpHLElBQUksRUFBRUosTUFBTSxDQUFDSSxJQUFJO1VBQUU7VUFDbkJnRCxJQUFJLEVBQUVwRCxNQUFNLENBQUNvRCxJQUFJO1VBQUU7VUFDbkJZLE9BQU8sbUJBQUNDLEdBQUcsRUFBRTtZQUNaakUsTUFBTSxDQUFDRSxTQUFTLEdBQUcsS0FBSztZQUN4QjtZQUNBeUQsT0FBTyxDQUFDTSxHQUFHLENBQUM7VUFDYixDQUFDO1VBQ0RDLElBQUksZ0JBQUNDLEdBQUcsRUFBRTtZQUNULGVBQWMsY0FBYyxFQUFFQSxHQUFHO1lBQ2pDUCxNQUFNLENBQUNPLEdBQUcsQ0FBQztVQUNaO1FBQ0QsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0g7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQWJDO0lBQUE7SUFBQTtNQUFBLHFGQWNBLGtCQUFtQi9ELElBQUksRUFBRUMsT0FBTztRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQy9CRixLQUFLLENBQUNNLEdBQUcsQ0FBQ1QsTUFBTSxDQUFDO2dCQUNqQjtnQkFDSW1GLEtBQUssR0FBRyxJQUFJbEMsS0FBSyxFQUFFO2dCQUFBO2dCQUFBLE9BQ2pCa0MsS0FBSyxDQUFDMkIsSUFBSSxDQUFDMUcsSUFBSSxFQUFFQyxPQUFPLENBQUM7Y0FBQTtnQkFBQSxrQ0FDeEI4RSxLQUFLO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBLENBQ1o7TUFBQTtRQUFBO01BQUE7TUFBQTtJQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUEsMEIiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog5a+5IFNRTGl0ZSDnmoQgT1JNIOeahOWwgeijheWkhOeQhlxyXG4gKiBAdGltZSAyMDIzLTA0LTA2XHJcbiAqIEB2ZXJzaW9uIDIuMC4wXHJcbiAqIEBieSB3enhcclxuICovXHJcblxyXG5sZXQgY29uZmlnID0ge1xyXG5cdGRlQnVnOiB0cnVlLFxyXG5cdGlzQ29ubmVjdDogZmFsc2VcclxufVxyXG4vLyBjbGFzcyBSZXNwb25zZSB7XHJcbi8vIFx0Y29uc3RydWN0b3IoY29kZSwgbXNnLCBkYXRhKSB7XHJcbi8vIFx0XHR0aGlzLmNvZGUgPSBjb2RlO1xyXG4vLyBcdFx0dGhpcy5tc2cgPSBtc2c7XHJcbi8vIFx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG4vLyBcdH1cclxuLy8gXHR0b1N0cmluZygpIHtcclxuLy8gXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtcclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbmNsYXNzIFV0aWxzIHtcclxuXHRzdGF0aWMgbW9kZWxTcWwobmFtZSwgb3B0aW9ucykge1xyXG5cdFx0bGV0IHNxbDtcclxuXHRcdGxldCBzcWxBcnIgPSBbXTtcclxuXHRcdGxldCBwcmltYXJ5S2V5QXJyID0gW107XHJcblx0XHRVdGlscy5sb2coJ1ttb2RlbFNxbF0gb3B0aW9uczonLCBvcHRpb25zKTtcclxuXHRcdFxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucykge1xyXG5cdFx0XHRpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IG9wdGlvbiA9IG9wdGlvbnNba2V5XTtcclxuXHRcdFx0XHRzcWxBcnIucHVzaChVdGlscy5yZXN0cmFpbihrZXksIG9wdGlvbikpO1xyXG5cdFx0XHRcdGlmIChvcHRpb24ucHJpbWFyeUtleSA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRwcmltYXJ5S2V5QXJyLnB1c2goa2V5LnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRcdFx0VXRpbHMubG9nKGBbbW9kZWxTcWxdICR7a2V5fSBpcyBwcmltYXJ5IGtleSR7cHJpbWFyeUtleUFyci5sZW5ndGh9YCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdFV0aWxzLmxvZyhwcmltYXJ5S2V5QXJyLmxlbmd0aCk7XHJcblx0XHRpZiAocHJpbWFyeUtleUFyci5sZW5ndGg+MSkge1xyXG5cdFx0XHRcclxuXHRcdFx0c3FsID0gYENSRUFURSBUQUJMRSAnJHtuYW1lfScgKCR7c3FsQXJyLmpvaW4oJywgJykucmVwbGFjZUFsbCgnIFBSSU1BUlkgS0VZJywnJyl9LCBQUklNQVJZIEtFWSAoJHtwcmltYXJ5S2V5QXJyLmpvaW4oKX0pKWA7XHJcblx0XHR9XHJcblx0XHRlbHNle1xyXG5cdFx0XHRzcWwgPSBgQ1JFQVRFIFRBQkxFICcke25hbWV9JyAoJHtzcWxBcnIuam9pbignLCAnKX0pYDtcclxuXHRcdH1cclxuXHRcdFV0aWxzLmxvZyhgW21vZGVsU3FsXSAke3NxbH1gKTtcclxuXHRcdHJldHVybiBzcWw7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgcmVzdHJhaW4oa2V5LCBvcHRpb25zKSB7XHJcblx0XHRsZXQgcmVzdHJhaW5BcnJheSA9IFtdO1xyXG5cdFx0cmVzdHJhaW5BcnJheS5wdXNoKGAnJHtrZXl9J2ApO1xyXG5cclxuXHRcdC8vIOWmguaenOaYryBTdHJpbmcg5oum5oiq5aSE55CGXHJcblx0XHRpZiAob3B0aW9ucy5jb25zdHJ1Y3RvciAhPSBPYmplY3QpIHtcclxuXHRcdFx0cmVzdHJhaW5BcnJheS5wdXNoKFV0aWxzLnRvVHlwZShvcHRpb25zKSk7XHJcblx0XHRcdHJldHVybiByZXN0cmFpbkFycmF5LmpvaW4oJyAnKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXN0cmFpbkFycmF5LnB1c2goVXRpbHMudG9UeXBlKG9wdGlvbnMudHlwZSkpO1xyXG5cdFx0XHJcblx0XHQvLyDkuLvplK5cclxuXHRcdGlmIChvcHRpb25zLnByaW1hcnlLZXkgPT0gdHJ1ZSkge1xyXG5cdFx0XHRpZihvcHRpb25zLmF1dG9JbmNyZW1lbnQgIT0gdHJ1ZSl7XHJcblx0XHRcdFx0cmVzdHJhaW5BcnJheS5wdXNoKCdQUklNQVJZIEtFWScpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIOiHquWinlxyXG5cdFx0aWYgKFV0aWxzLmlzTnVtYmVyKG9wdGlvbnMudHlwZSkmJm9wdGlvbnMuYXV0b0luY3JlbWVudCA9PSB0cnVlKSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucG9wKCk7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnSU5URUdFUicpO1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goJ1BSSU1BUlkgS0VZJyk7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnQVVUT0lOQ1JFTUVOVCcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyDpnZ7nqbpcclxuXHRcdGlmIChvcHRpb25zLm5vdE51bGwgPT0gdHJ1ZSkge1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goJ05PVCBOVUxMJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8g6buY6K6k5YC8XHJcblx0XHRpZiAob3B0aW9ucy5kZWZhdWx0KSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaChgREVGQVVMVCAke29wdGlvbnMuZGVmYXVsdH1gKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyDmmK/lkKbmmK/kuI3lkIznmoTlgLxcclxuXHRcdGlmIChvcHRpb25zLnVuaXF1ZSA9PSB0cnVlKSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnVU5JUVVFJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8g5qOA5p+lXHJcblx0XHRpZiAob3B0aW9ucy5jaGVjaykge1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goYENIRUNLKCR7VEhJU19WQUxVRS5jaGVja30pYCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3RyYWluQXJyYXkuam9pbignICcpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHRvVHlwZShqc1R5cGUpIHtcclxuXHRcdGxldCBzcWxpdGVUeXBlID0gJyc7XHJcblx0XHRpZiAoVXRpbHMuaXNOdW1iZXIoanNUeXBlKSkge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ251bWVyaWMnO1xyXG5cdFx0fSBlbHNlIGlmIChVdGlscy5pc0RhdGUoanNUeXBlKSkge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ3RpbWVzdGFtcCc7XHJcblx0XHR9IGVsc2UgaWYgKFV0aWxzLmlzQmxvYihqc1R5cGUpKSB7XHJcblx0XHRcdHNxbGl0ZVR5cGUgPSAnQkxPQic7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ3ZhcmNoYXInO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHNxbGl0ZVR5cGU7XHJcblx0fVxyXG5cdFxyXG5cdHN0YXRpYyBsb2coKSB7XHJcblx0XHRpZiAoY29uZmlnLmRlQnVnKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHN0YXRpYyB3YXJuKCkge1xyXG5cdFx0aWYgKGNvbmZpZy5kZUJ1Zykge1xyXG5cdFx0XHRjb25zb2xlLndhcm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0c3RhdGljIGVycm9yKCkge1xyXG5cdFx0Y29uc29sZS5lcnJvci5hcHBseShudWxsLCBhcmd1bWVudHMpO1xyXG5cdH1cclxuXHRcclxuXHRzdGF0aWMgaXNCbG9iKHZhbHVlKXsgcmV0dXJuIHZhbHVlID09PSAnQkxPQicgfVxyXG5cdHN0YXRpYyBpc0FycmF5KHZhbHVlKXsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSd9XHJcblx0c3RhdGljIGlzT2JqZWN0KHZhbHVlKXsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IE9iamVjdF0nfVxyXG5cdHN0YXRpYyBpc1N0cmluZyh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBTdHJpbmddJ31cclxuXHRzdGF0aWMgaXNGdW5jdGlvbih2YWx1ZSl7IHJldHVybiAodmFsdWUgPT09IEZ1bmN0aW9uIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXScpfVxyXG5cdHN0YXRpYyBpc051bWJlcih2YWx1ZSl7IHJldHVybiAodmFsdWUgPT09IE51bWJlciB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBOdW1iZXJdJyl9XHJcblx0c3RhdGljIGlzTmFOKHZhbHVlKXsgcmV0dXJuIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBOdW1iZXJdJyAmJiBpc05hTih2YWx1ZSkpfVxyXG5cdHN0YXRpYyBpc0Jvb2xlYW4odmFsdWUpeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQm9vbGVhbl0nfVxyXG5cdHN0YXRpYyBpc1VuZGVmaW5lZCh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBVbmRlZmluZWRdJ31cclxuXHRzdGF0aWMgaXNNb2RlbCh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBNb2RlbF0nfVxyXG5cdHN0YXRpYyBpc0RhdGUodmFsdWUpeyByZXR1cm4gKHZhbHVlID09PSBEYXRlfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBEYXRlXScpfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE1vZGVsIOWvueixoeWGhemDqHB1YmxpY+aWueazleWFqOmDqCByZXR1cm4gdGhpcztcclxuICovXHJcbmNsYXNzIE1vZGVsIHtcclxuXHQvKipcclxuXHQgKiBAY29uc3RydWN0b3JcclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDmlbDmja7lupPooajlkI1cclxuXHQgKiBAcGFyYW0ge30gb3B0aW9ucyDmlbDmja7ooajliJflr7nosaFcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHQvLyBjb25zdHJ1Y3RvcihuYW1lLCBvcHRpb25zKSB7XHJcblx0XHQvLyB0aGlzLmluaXQobmFtZSwgb3B0aW9ucylcclxuXHRcdFxyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5uYW1lID0gbmFtZTtcclxuXHRcdC8vIHNlbGYub3B0aW9ucyA9IG9wdGlvbnM7XHJcblxyXG5cdFx0Ly8gaWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdC8vIFx0c2VsZi5yZXBhaXIoKTtcclxuXHRcdC8vIH0gZWxzZSB7XHJcblx0XHQvLyBcdGlmKCFjb25maWcubmFtZXx8IWNvbmZpZy5wYXRoKXtcclxuXHRcdC8vIFx0XHRjb25zb2xlLmVycm9yKCdcImNvbmZpZy5uYW1lXCIgb3IgXCJjb25maWcucGF0aFwiIGlzIGVtcHR5Jyk7XHJcblx0XHQvLyBcdH1cclxuXHRcdC8vIFx0dXNxbGl0ZS5jb25uZWN0KGNvbmZpZyk7XHJcblx0XHQvLyB9XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIOaVsOaNruW6k+ihqOWQjVxyXG5cdCAqIEBwYXJhbSB7fSBvcHRpb25zIOaVsOaNruihqOWIl+WvueixoVxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGFzeW5jIGluaXQobmFtZSwgb3B0aW9ucykge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0c2VsZi5uYW1lID0gbmFtZTtcclxuXHRcdHNlbGYub3B0aW9ucyA9IG9wdGlvbnM7XHJcblx0XHJcblx0XHRpZiAoY29uZmlnLmlzQ29ubmVjdCkge1xyXG5cdFx0XHRhd2FpdCBzZWxmLnJlcGFpcigpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYoIWNvbmZpZy5uYW1lfHwhY29uZmlnLnBhdGgpe1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1wiY29uZmlnLm5hbWVcIiBvciBcImNvbmZpZy5wYXRoXCIgaXMgZW1wdHknKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRhd2FpdCB1c3FsaXRlLmNvbm5lY3QoY29uZmlnKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmn6Xor6LooajmlbDmja5cclxuXHQgKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gb3B0aW9ucyBcclxuXHQgKiAtIFN0cmluZyAgV0hFUkUg5YaF5a65XHJcblx0ICogLSBBcnJheSDpnIDopoHmn6Xor6LnmoTliJdcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRmaW5kKG9wdGlvbnM9JycpIHtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRcclxuXHRcdGlmKCEoVXRpbHMuaXNTdHJpbmcob3B0aW9ucyl8fFV0aWxzLmlzQXJyYXkob3B0aW9ucyl8fFV0aWxzLmlzRnVuY3Rpb24ob3B0aW9ucykpKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmZpbmQgc2hvdWxkIGJlIFwiQXJyYXlcIiwgXCJTdHJpbmdcIiBvciBcIkZ1bmN0aW9uXCIgKHdoZW4gdGhlcmUgaXMgb25seSBvbmUgcGFyYW1ldGVyKS4nKVxyXG5cdFx0fVxyXG5cdFx0aWYgKG9wdGlvbnMgPT0gJycpIHtcclxuXHRcdFx0c3FsID0gYFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfSdgOyAvLyDmn6Xmib7lhajpg6hcclxuXHRcdH0gZWxzZSBpZiAoVXRpbHMuaXNBcnJheShvcHRpb25zKSkge1xyXG5cdFx0XHRzcWwgPSBgU0VMRUNUICR7b3B0aW9ucy5qb2luKCl9IEZST00gJyR7dGhpcy5uYW1lfSdgOyAvLyDmn6Xmib7liLblrprliJdcclxuXHRcdH0gZWxzZSBpZiAoVXRpbHMuaXNTdHJpbmcob3B0aW9ucykpIHtcclxuXHRcdFx0c3FsID0gYFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgV0hFUkUgJHtvcHRpb25zfWA7IC8vIOWItuWumuadoeS7tuafpeivolxyXG5cdFx0fVxyXG5cclxuXHRcdFV0aWxzLmxvZyhgW2ZpbmRdOiAke3NxbH1gKTtcclxuXHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRwbHVzLnNxbGl0ZS5zZWxlY3RTcWwoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLFxyXG5cdFx0XHRcdHNxbDogc3FsLFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2ZpbmRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbZmluZF0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdHJlamVjdChlcnIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOWIhumhteafpeivolxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIDogICB7IHdoZXJlOuafpeivouadoeS7tiwgbnVtYmVyOiDlvZPliY3pobXmlbAgLCBjb3VudCA6IOavj+mhteaVsOmHjyB9XHJcblx0ICogQHJldHVyblxyXG5cdCAqL1xyXG5cdGxpbWl0KG9wdGlvbnMpIHtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRpZighVXRpbHMuaXNPYmplY3Qob3B0aW9ucykpe1xyXG5cdFx0XHRVdGlscy5lcnJvcignVGhlIGZpcnN0IHBhcmFtZXRlciBvZiBNb2RlbC5saW1pdCBzaG91bGQgYmUgXCJPYmplY3RcIi4nKVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpZiAoIW9wdGlvbnMud2hlcmUpIHtcclxuXHRcdFx0Ly8g5LiN5a2Y5ZyoIHdoZXJlXHJcblx0XHRcdHNxbCA9XHJcblx0XHRcdFx0YFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgTElNSVQgJHtvcHRpb25zLmNvdW50fSBPRkZTRVQgJHsob3B0aW9ucy5udW1iZXIgLSAxKSAqIG9wdGlvbnMuY291bnR9YFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8g5a2Y5ZyoIHdoZXJlXHJcblx0XHRcdHNxbCA9XHJcblx0XHRcdFx0YFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgV0hFUkUgJHtvcHRpb25zLndoZXJlfSBMSU1JVCAke29wdGlvbnMuY291bnR9IE9GRlNFVCAkeyhvcHRpb25zLm51bWJlciAtIDEpICogb3B0aW9ucy5jb3VudH1gO1xyXG5cdFx0fTtcclxuXHJcblx0XHRVdGlscy5sb2coYFtsaW1pdF06ICR7c3FsfWApO1xyXG5cclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbbGltaXRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbbGltaXRdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmj5LlhaXmlbDmja5cclxuXHQgKiBAcGFyYW0ge09iamVjdHxBcnJheX0gZGF0YTog6ZyA6KaB5o+S5YWl55qE5Y2V5Liq5oiW6ICF5aSa5Liq5pWw5o2uXHJcblx0ICovXHJcblx0YXN5bmMgaW5zZXJ0KGRhdGEpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChkYXRhKXx8VXRpbC5pc0FycmF5KGRhdGEpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmluc2VydCBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIkFycmF5XCIuJylcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdFx0aWYgKFV0aWxzLmlzQXJyYXkoZGF0YSkpIHtcclxuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuaW5zZXJ0KGRhdGFbaV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fSBlbHNlIGlmIChVdGlscy5pc09iamVjdChkYXRhKSkge1xyXG5cdFx0XHRcdGxldCBrZXlzID0gW107XHJcblx0XHRcdFx0bGV0IHZhbHVlcyA9IFtdO1xyXG5cdFx0XHRcdC8vIGxldCBpbmRleCA9IGFyZ3VtZW50c1szXT8/bnVsbDtcclxuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xyXG5cdFx0XHRcdFx0a2V5cy5wdXNoKGtleSk7XHJcblx0XHRcdFx0XHR2YWx1ZXMucHVzaChgJyR7ZGF0YVtrZXldfSdgKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGxldCBzcWwgPSBgSU5TRVJUIElOVE8gJyR7dGhpcy5uYW1lfScgKCR7a2V5cy5qb2luKCl9KSBWQUxVRVMgKCR7dmFsdWVzLmpvaW4oKX0pYDtcclxuXHJcblx0XHRcdFx0VXRpbHMubG9nKGBbaW5zZXJ0XTogJHtzcWx9YCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHRcdHBsdXMuc3FsaXRlLmV4ZWN1dGVTcWwoe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tpbnNlcnRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2luc2VydF0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0pO1x0XHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOabtOaWsOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRh77yaIOS/ruaUueWQjueahOaVsOaNriBcclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9uc++8muWPr+mAieWPguaVsCDmm7TmlrDmnaHku7ZcclxuXHQgKi9cclxuXHR1cGRhdGUoZGF0YSwgb3B0aW9ucz0nJykge1xyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdGxldCBpdGVtcyA9IFtdO1xyXG5cdFx0XHJcblx0XHRpZighKFV0aWxzLmlzT2JqZWN0KGRhdGEpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLnVwZGF0ZSBzaG91bGQgYmUgXCJPYmpyY3RcIi4nKVxyXG5cdFx0fVxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChvcHRpb25zKXx8VXRpbHMuaXNTdHJpbmcob3B0aW9ucykpKXtcclxuXHRcdFx0VXRpbHMuZXJyb3IoJ1RoZSBzZWNvbmQgcGFyYW1ldGVyIG9mIE1vZGVsLnVwZGF0ZSBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIlN0cmluZ1wiLicpXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGZvciAodmFyIGtleSBpbiBkYXRhKSB7XHJcblx0XHRcdGl0ZW1zLnB1c2goYCR7a2V5fT0nJHtkYXRhW2tleV19J2ApO1xyXG5cdFx0fTtcclxuXHRcdFxyXG5cdFx0aWYgKG9wdGlvbnMgPT0gJycpIHtcclxuXHRcdFx0c3FsID0gYFVQREFURSAnJHt0aGlzLm5hbWV9JyBTRVQgJHtpdGVtcy5qb2luKCl9YDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNxbCA9IGBVUERBVEUgJHt0aGlzLm5hbWV9IFNFVCAke2l0ZW1zLmpvaW4oKX0gV0hFUkUgJHtvcHRpb25zfWA7XHJcblx0XHR9O1xyXG5cdFx0VXRpbHMubG9nKGBbdXBkYXRlXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLmV4ZWN1dGVTcWwoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLFxyXG5cdFx0XHRcdHNxbDogc3FsLFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnW3VwZGF0ZV0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1t1cGRhdGVdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliKDpmaTmlbDmja5cclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucyDvvJrlj6/pgInlj4LmlbAg5Yig6Zmk5p2h5Lu2XHJcblx0ICovXHJcblx0ZGVsZXRlKG9wdGlvbnM9JycpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHR2YXIgc3FsID0gJyc7XHRcdFxyXG5cdFx0XHJcblx0XHRpZighKFV0aWxzLmlzU3RyaW5nKG9wdGlvbnMpfHxVdGlscy5pc0Z1bmN0aW9uKG9wdGlvbnMpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmRlbGV0ZSBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIkZ1bmN0aW9uXCIuJylcclxuXHRcdH1cclxuXHJcblx0XHRpZiAob3B0aW9ucyA9PSAnJykge1xyXG5cdFx0XHRzcWwgPSBgREVMRVRFIEZST00gJyR7dGhpcy5uYW1lfSdgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c3FsID0gYERFTEVURSBGUk9NICcke3RoaXMubmFtZX0nIFdIRVJFICR7b3B0aW9uc31gO1xyXG5cdFx0fTtcclxuXHRcdFV0aWxzLmxvZyhgW2RlbGV0ZV06ICR7c3FsfWApO1xyXG5cdFx0XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRwbHVzLnNxbGl0ZS5leGVjdXRlU3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tkZWxldGVdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbZGVsZXRlXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gIOmHjeWRveWQjeaIluiAheaWsOWinuWIl1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fFN0cmluZ30gb3B0aW9ucyDlj4LmlbAg5pWw57uE5Li65paw5aKe5aSa5YiXIOWvueixoeS4uuaWsOWinuWNleWIl3thYX0g5a2X56ym5Liy6YeN5ZG95ZCNXHJcblx0ICogQHJldHVybjogXHJcblx0ICovXHJcblx0YXN5bmMgYWx0ZXIob3B0aW9ucykge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdFxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChvcHRpb25zKXx8VXRpbHMuaXNBcnJheShvcHRpb25zKXx8VXRpbHMuaXNTdHJpbmcob3B0aW9ucykpKXtcclxuXHRcdFx0VXRpbHMuZXJyb3IoJ1RoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgTW9kZWwuYWx0ZXIgc2hvdWxkIGJlIFwiT2JqZWN0XCIsIFwiQXJyYXlcIiBvciBcIlN0cmluZ1wiLicpXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGlmIChVdGlscy5pc0FycmF5KG9wdGlvbnMpKSB7IC8vIOaWsOWinuWkmuWIl1xyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLmFsdGVyKG9wdGlvbnNbaV0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVyblxyXG5cdFx0fSBlbHNlIGlmIChVdGlscy5pc09iamVjdChvcHRpb25zKSkgeyAvLyDmlrDlop7ljZXliJdcclxuXHRcdFx0bGV0IGNvbHVtbiA9IFV0aWxzLnJlc3RyYWluKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5vcHRpb24pO1xyXG5cdFx0XHRzcWwgPSBgQUxURVIgVEFCTEUgJyR7dGhpcy5uYW1lfScgQUREIENPTFVNTiAke2NvbHVtbn1gXHJcblx0XHR9IGVsc2UgaWYgKG9wdGlvbnMuY29uc3RydWN0b3IgPT0gU3RyaW5nKSB7IC8vIOmHjeWRveWQjVxyXG5cdFx0XHRzcWwgPSBgQUxURVIgVEFCTEUgJyR7dGhpcy5uYW1lfScgUkVOQU1FIFRPICcke29wdGlvbnN9J2BcclxuXHRcdH1cclxuXHRcdFV0aWxzLmxvZyhgW2FsdGVyXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGlmIChvcHRpb25zLmNvbnN0cnVjdG9yID09IFN0cmluZykgeyAvLyDph43lkb3lkI1cclxuXHRcdFx0XHRcdFx0c2VsZi5uYW1lID0gb3B0aW9ucztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbYWx0ZXJdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbYWx0ZXJdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFxyXG5cdCAqIEBwYXJhbSB7TW9kZWx9IG1vZGVsIOWPsyBNb2RlbFxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGpvaW4obW9kZWwsIG9wdGlvbnMpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRpZiAoIW1vZGVsKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdcIm1vZGVsXCIgY2Fubm90IGJlIGVtcHR5LicpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFVdGlscy5pc09iamVjdChvcHRpb25zKSkge1xyXG5cdFx0XHRVdGlscy5lcnJvcignVGhlIHR5cGUgb2YgXCJvcHRpb25zXCIgaXMgd3JvbmcsIGl0IHNob3VsZCBiZSBcIk9iamVjdFwiLicpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFvcHRpb25zLnR5cGUgfHwgIW9wdGlvbnMucHJlZGljYXRlKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcnMnKTtcclxuXHRcdH1cclxuXHJcblx0XHRsZXQgbGVmdE5hbWUgPSB0aGlzLm5hbWU7XHJcblx0XHRsZXQgcmlnaHROYW1lID0gbW9kZWwubmFtZTtcclxuXHRcdGxldCBsZWZ0VmFsdWUgPSBvcHRpb25zLnByZWRpY2F0ZS5sZWZ0O1xyXG5cdFx0bGV0IHJpZ2h0VmFsdWUgPSBvcHRpb25zLnByZWRpY2F0ZS5yaWdodDtcclxuXHRcdGxldCBjb2xzID0gWycqJ107XHJcblxyXG5cdFx0Y29uc3QgU1FMX01BUCA9IHtcclxuXHRcdFx0Y3Jvc3M6IGBTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSBDUk9TUyBKT0lOICR7cmlnaHROYW1lfTtgLFxyXG5cdFx0XHRpbm5lcjogW2BTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSBOQVRVUkFMIEpPSU4gJHtyaWdodE5hbWV9YCxcclxuXHRcdFx0YFNFTEVDVCAke2NvbHMuam9pbigpfSBGUk9NICR7bGVmdE5hbWV9ICBJTk5FUiBKT0lOICR7cmlnaHROYW1lfSBPTiAke2xlZnROYW1lfS4ke2xlZnRWYWx1ZX0gPSAke3JpZ2h0TmFtZX0uJHtyaWdodFZhbHVlfWBcclxuXHRcdFx0XSxcclxuXHRcdFx0b3V0ZXI6IGBTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSAgT1VURVIgSk9JTiAke3JpZ2h0TmFtZX0gT04gJHtsZWZ0TmFtZX0uJHtsZWZ0VmFsdWV9ID0gJHtyaWdodE5hbWV9LiR7cmlnaHRWYWx1ZX1gXHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHNxbCA9ICcnO1xyXG5cdFx0aWYgKG9wdGlvbnMudHlwZSA9PSBpbm5lciAmJiAhb3B0aW9ucy5wcmVkaWNhdGUpIHtcclxuXHRcdFx0c3FsID0gU1FMX01BUFtvcHRpb25zLnR5cGVdWzBdO1xyXG5cdFx0fSBlbHNlIGlmIChvcHRpb25zLnR5cGUgPT0gaW5uZXIgJiYgIW9wdGlvbnMucHJlZGljYXRlKSB7XHJcblx0XHRcdHNxbCA9IFNRTF9NQVBbb3B0aW9ucy50eXBlXVsxXTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNxbCA9IFNRTF9NQVBbb3B0aW9ucy50eXBlXTtcclxuXHRcdH1cclxuXHJcblx0XHRVdGlscy5sb2coYFtqb2luXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbam9pbl0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tqb2luXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5omn6KGMc3Fs6K+t5Y+lXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IHNxbCA6IHNxbOivreWPpVxyXG5cdCAqL1xyXG5cdHNxbChzcWwpIHtcclxuXHRcdGlmICghVXRpbHMuaXNTdHJpbmcoc3FsKSkge1xyXG5cdFx0XHRVdGlscy5lcnJvcignXCJUaGUgdHlwZSBvZiBcInNxbFwiIGlzIHdyb25nLCBpdCBzaG91bGQgYmUgXCJTdHJpbmdcIi4nKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHJcblx0XHRVdGlscy5sb2coYFtzcWxdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tzcWxdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbc3FsXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5Yik5pat6KGo5piv5ZCm5a2Y5ZyoIFxyXG5cdCAqL1xyXG5cdGluc2VydE1hcERhdGEoYXJyYXlCdWZmZXIpIHtcclxuXHRcdGNvbnNvbGUubG9nKCdhcnJheUJ1ZmZlcicsIGFycmF5QnVmZmVyKVxyXG5cdFx0bGV0IHppcEZpbGVEYXRhID0gdGhpcy5ieXRlQXJyYXlUb0hleFN0cmluZyhhcnJheUJ1ZmZlcilcclxuXHRcdGNvbnNvbGUubG9nKCd6aXBGaWxlRGF0YScsIHppcEZpbGVEYXRhKVxyXG5cdFx0XHJcblx0XHRsZXQgc3FsID0gYElOU0VSVCBJTlRPICdtYXBJbmZvJyAoc2hvcElkLG1hcE5hbWUsemlwSW1hZ2VVcmwsemlwSW1hZ2VNZDUsemlwRmlsZU5hbWUsemlwRmlsZURhdGEpIFxyXG5cdFx0VkFMVUVTICgnMScsJ+i3r+e6v+WbvicsJ2h0dHA6Ly93d3cuYmVzd2VsbC5jb20vZG93bmxvYWQv6b2Q5rqQ5aSn5Y6mX+W3suS/ruaUuS56aXAnLCdNVEV4TVE9PScsJ+m9kOa6kOWkp+WOpl/lt7Lkv67mlLkudGlmJywgeCcke3ppcEZpbGVEYXRhfScpYDtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuZXhlY3V0ZVNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbaW5zZXJ0TWFwRGF0YV0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tpbnNlcnRNYXBEYXRhXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdFxyXG5cdGJ5dGVBcnJheVRvSGV4U3RyaW5nKGFycmF5QnVmZmVyKSB7IC8vIGNvbnZlcnRzIGJ5dGUgYXJyYXlzIHRvIHN0cmluZ1xyXG5cdFx0bGV0IGksIGosIGlubjtcclxuXHRcdGxldCBoZXggPSBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCJdO1xyXG5cdFx0bGV0IG91dCA9IFwiXCI7XHJcblx0XHJcblx0XHRmb3IgKGogPSAwOyBqIDwgYXJyYXlCdWZmZXIubGVuZ3RoOyArK2opIHtcclxuXHRcdFx0aW5uID0gYXJyYXlCdWZmZXJbal0gJiAweGZmO1xyXG5cdFx0XHRpID0gKGlubiA+Pj4gNCkgJiAweDBmO1xyXG5cdFx0XHRvdXQgKz0gaGV4W2ldO1xyXG5cdFx0XHRpID0gaW5uICYgMHgwZjtcclxuXHRcdFx0b3V0ICs9IGhleFtpXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBvdXQ7XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliKTmlq3ooajmmK/lkKblrZjlnKggXHJcblx0ICovXHJcblx0aXNFeGlzdCgpIHtcclxuXHRcdGxldCBzcWwgPSBgU0VMRUNUIGNvdW50KCopIEFTIGlzRXhpc3QgRlJPTSBzcWxpdGVfbWFzdGVyIFdIRVJFIHR5cGU9J3RhYmxlJyBBTkQgbmFtZT0nJHt0aGlzLm5hbWV9J2A7XHJcblx0XHQvLyBVdGlscy5sb2coYFtpc0V4aXN0XSAke2NvbmZpZy5uYW1lfWApO1xyXG5cdFx0Ly8gVXRpbHMubG9nKGBbaXNFeGlzdF0gJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbaXNFeGlzdF0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdGlmIChyZXNbMF0uaXNFeGlzdCA9PSAxKVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2lzRXhpc3RdICR7Y29uZmlnLm5hbWV9IOW3suWtmOWcqGApO1xyXG5cdFx0XHRcdFx0ZWxzZVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2lzRXhpc3RdICR7Y29uZmlnLm5hbWV9IOS4jeWtmOWcqGApO1xyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2lzRXhpc3RdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOWIoOmZpOaVsOaNruihqCAqKuS4jeaOqOiNkCoqXHJcblx0ICovXHJcblx0ZHJvcCgpIHtcclxuXHRcdHZhciBzcWwgPSBgRFJPUCBUQUJMRSAnJHt0aGlzLm5hbWV9J2A7XHJcblx0XHQvLyBsZXQgc2VsZiA9IHRoaXM7XHJcblx0XHQvLyBzZWxmLnJlcGFpcigpO1xyXG5cclxuXHRcdFV0aWxzLmxvZyhgW2Ryb3BdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tkcm9wXSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2Ryb3BdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliJvlu7rmlbDmja7ooaggKirkuI3mjqjojZAqKlxyXG5cdCAqL1xyXG5cdGNyZWF0ZSgpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdGxldCBzcWwgPSBVdGlscy5tb2RlbFNxbCh0aGlzLm5hbWUsIHRoaXMub3B0aW9ucyk7XHJcblx0XHRVdGlscy5sb2coYFtjcmVhdGVdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tjcmVhdGVdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbY3JlYXRlXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR0b1N0cmluZygpIHtcclxuXHRcdHJldHVybiBgWyR7dGhpcy5uYW1lfSBNb2RlbF1gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgcmVwYWlyKCkge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0XHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgcmVzID0gYXdhaXQgc2VsZi5pc0V4aXN0KClcclxuXHRcdFx0aWYgKCFyZXNbMF0uaXNFeGlzdCkge1xyXG5cdFx0XHRcdGF3YWl0IHNlbGYuY3JlYXRlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2goZSkge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKGUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cclxufVxyXG5cclxuXHJcbi8vIOWNleS+i+aooeW8j1xyXG5leHBvcnQgY2xhc3MgdXNxbGl0ZSB7XHJcblx0LyoqXHJcblx0ICog5p6E6YCg5Ye95pWwXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMg5pWw5o2u5bqT6YWN572u5L+h5oGvICpcclxuXHQgKiB7bmFtZTogJ2RlbW8nLCBwYXRoOiAnX2RvYy9kZW1vLmRiJ31cclxuXHQgKiAtIG5hbWUg5pWw5o2u5bqT5ZCN56ewKlxyXG5cdCAqIC0gcGF0aCDmlbDmja7lupPot6/lvoRcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcblx0XHRjb25zb2xlLndhcm4oJ05vIGluc3RhbnRpYXRpb24nKTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOmTvuaOpeaVsOaNruW6k1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIOaVsOaNruW6k+mFjee9ruS/oeaBryAqXHJcblx0ICoge25hbWU6ICdkZW1vJywgcGF0aDogJ19kb2MvZGVtby5kYid9XHJcblx0ICogLSBuYW1lIOaVsOaNruW6k+WQjeensCpcclxuXHQgKiAtIHBhdGgg5pWw5o2u5bqT6Lev5b6EXHJcblx0ICovXHJcblx0c3RhdGljIGNvbm5lY3Qob3B0aW9ucykge1xyXG5cdFx0Y29uZmlnLm5hbWUgPSBvcHRpb25zLm5hbWU7IC8vIOaVsOaNruW6k+WQjeensCpcclxuXHRcdGNvbmZpZy5wYXRoID0gb3B0aW9ucy5wYXRoOyAvLyDmlbDmja7lupPlkI3np7AqXHJcblxyXG5cdFx0aWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKCdbY29ubmVjdF0g5pWw5o2u5bqT5bey6L+e5o6l77yM5peg6ZyA6YeN6L+eJylcclxuXHRcdFx0cmV0dXJuXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLm9wZW5EYXRhYmFzZSh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsIC8v5pWw5o2u5bqT5ZCN56ewXHJcblx0XHRcdFx0cGF0aDogY29uZmlnLnBhdGgsIC8v5pWw5o2u5bqT5Zyw5Z2AXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbmZpZy5pc0Nvbm5lY3QgPSB0cnVlO1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tjb25uZWN0XSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0aWYgKGUuY29kZSA9PSAtMTQwMikge1xyXG5cdFx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbY29ubmVjdF0gd2FybjonLCBlcnIpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tjb25uZWN0XSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmlq3lvIDmlbDmja7lupNcclxuXHQgKiBAcGFyYW0geyp9IGNhbGxiYWNrIFxyXG5cdCAqL1xyXG5cdHN0YXRpYyBjbG9zZSgpIHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLmNsb3NlRGF0YWJhc2Uoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLCAvL+aVsOaNruW6k+WQjeensFxyXG5cdFx0XHRcdHBhdGg6IGNvbmZpZy5wYXRoLCAvL+aVsOaNruW6k+WcsOWdgFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnW2Nsb3NlXSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1x0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tjbG9zZV0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdHJlamVjdChlcnIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5Yib5bu6IE1vZGVsIOWvueixoVxyXG5cdCAqIEBleGFtcGxlXHJcblx0ICogdXNxbGl0ZS5tb2RlbCgnZGVtbycsXHJcblx0ICoge1xyXG5cdCAqIFx0XHRpZDoge1xyXG5cdCAqIFx0XHRcdHR5cGU6IE51bWJlclxyXG5cdCAqIFx0XHR9LFxyXG5cdCAqIFx0XHRjb250ZW50OiBTdHJpbmdcclxuXHQgKiB9KVxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIOaVsOaNruihqOWQjeensCAqXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMg5Y+C5pWw6YWN572uICpcclxuXHQgKiBAcmV0dXJucyDov5Tlm54gTW9kZWwg5a+56LGhXHJcblx0ICovXHJcblx0c3RhdGljIGFzeW5jIG1vZGVsKG5hbWUsIG9wdGlvbnMpIHtcclxuXHRcdFV0aWxzLmxvZyhjb25maWcpO1xyXG5cdFx0Ly8gcmV0dXJuIG5ldyBNb2RlbChuYW1lLCBvcHRpb25zKTtcclxuXHRcdGxldCBtb2RlbCA9IG5ldyBNb2RlbCgpO1xyXG5cdFx0YXdhaXQgbW9kZWwuaW5pdChuYW1lLCBvcHRpb25zKVxyXG5cdFx0cmV0dXJuIG1vZGVsXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///51\n");
- /***/ }),
- /* 52 */
- /*!***************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
- \***************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 53 */
- /*!************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
- \************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
- function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
- }
- }
- function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
- }
- module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 54 */
- /*!***********************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/utils/ouu-nfc.js ***!
- \***********************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// 包路径\nvar package_NdefRecord = 'android.nfc.NdefRecord';\nvar package_NdefMessage = 'android.nfc.NdefMessage';\nvar package_TECH_DISCOVERED = 'android.nfc.action.TECH_DISCOVERED';\nvar package_Intent = 'android.content.Intent';\nvar package_Activity = 'android.app.Activity';\nvar package_PendingIntent = 'android.app.PendingIntent';\nvar package_IntentFilter = 'android.content.IntentFilter';\nvar package_NfcAdapter = 'android.nfc.NfcAdapter';\nvar package_Ndef = 'android.nfc.tech.Ndef';\nvar package_NdefFormatable = 'android.nfc.tech.NdefFormatable';\nvar package_Parcelable = 'android.os.Parcelable';\nvar package_String = 'java.lang.String';\nvar NfcAdapter;\nvar NdefRecord;\nvar NdefMessage;\nvar Uri;\nvar readyWriteData = false;\nvar readyRead = false;\nvar readySetPwd = false;\nvar readyDelPwd = false;\nvar readyGetNfcState = false;\nvar readyWriteAndLock = false;\nvar noNFC = false;\nvar techListsArray = [['android.nfc.tech.IsoDep'], ['android.nfc.tech.NfcA'], ['android.nfc.tech.NfcB'], ['android.nfc.tech.NfcF'], ['android.nfc.tech.Nfcf'], ['android.nfc.tech.NfcV'], ['android.net.Uri'], ['android.nfc.tech.NdefFormatable'], ['android.nfc.tech.MifareClassi'], ['android.nfc.tech.MifareUltralight']];\nvar UriPrefixMap = [];\nUriPrefixMap[0x00] = '';\nUriPrefixMap[0x01] = 'http://www.';\nUriPrefixMap[0x02] = 'https://www.';\nUriPrefixMap[0x03] = 'http://';\nUriPrefixMap[0x04] = 'https://';\nUriPrefixMap[0x05] = 'tel:';\nUriPrefixMap[0x06] = 'mailto:';\nUriPrefixMap[0x07] = 'ftp://anonymous:anonymous@';\nUriPrefixMap[0x08] = 'ftp://ftp.';\nUriPrefixMap[0x09] = 'ftps://';\nvar writeUri = 'http://www.beswell.com'; // 要写入的数据\nvar readResult = ''; // NFC读取到的数据\nvar pwdBytes = [1, 2, 3, 4]; // 待写入的密码\nvar pwdDefault = [0xFF, 0xFF, 0xFF, 0xFF]; // 清除密码后设置的默认值\nvar _default = {\n listenNFCStatus: function listenNFCStatus() {\n var that = this;\n try {\n var main = plus.android.runtimeMainActivity();\n var Intent = plus.android.importClass('android.content.Intent');\n var Activity = plus.android.importClass('android.app.Activity');\n var PendingIntent = plus.android.importClass('android.app.PendingIntent');\n var IntentFilter = plus.android.importClass('android.content.IntentFilter');\n Uri = plus.android.importClass('android.net.Uri');\n NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter');\n var nfcAdapter = NfcAdapter.getDefaultAdapter(main);\n if (nfcAdapter == null) {\n uni.showToast({\n title: '设备不支持NFC!',\n icon: 'none'\n });\n noNFC = true;\n return;\n }\n if (!nfcAdapter.isEnabled()) {\n uni.showToast({\n title: '请在系统设置中先启用NFC功能!',\n icon: 'none'\n });\n noNFC = true;\n return;\n } else {\n noNFC = false;\n }\n var intent = new Intent(main, main.getClass());\n intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);\n var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);\n var ndef = new IntentFilter(\"android.nfc.action.TECH_DISCOVERED\");\n ndef.addDataType(\"*/*\");\n var intentFiltersArray = [ndef];\n plus.globalEvent.addEventListener('newintent', function () {\n __f__(\"log\", 'newintent running', \" at utils/ouu-nfc.js:97\");\n // 监听 NFC\n setTimeout(function () {\n that.nfcRuning();\n }, 100);\n });\n plus.globalEvent.addEventListener('pause', function (e) {\n __f__(\"log\", 'pause running', \" at utils/ouu-nfc.js:104\");\n if (nfcAdapter) {\n //关闭前台调度系统\n //恢复默认状态\n nfcAdapter.disableForegroundDispatch(main);\n }\n });\n plus.globalEvent.addEventListener('resume', function (e) {\n __f__(\"log\", 'resume running', \" at utils/ouu-nfc.js:112\");\n if (nfcAdapter) {\n //开启前台调度系统\n nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);\n }\n });\n nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);\n } catch (e) {\n __f__(\"error\", e, \" at utils/ouu-nfc.js:121\");\n }\n },\n nfcRuning: function nfcRuning() {\n NdefRecord = plus.android.importClass(\"android.nfc.NdefRecord\");\n NdefMessage = plus.android.importClass(\"android.nfc.NdefMessage\");\n var main = plus.android.runtimeMainActivity();\n var intent = main.getIntent();\n // let intent = plus.android.invoke(main, 'getIntent');\n var that = this;\n __f__(\"log\", \"action type:\" + intent.getAction(), \" at utils/ouu-nfc.js:132\");\n if (package_TECH_DISCOVERED == intent.getAction()) {\n if (readyWriteData) {\n that.write(intent);\n readyWriteData = false;\n } else if (readyRead) {\n that.read(intent);\n readyRead = false;\n } else if (readySetPwd) {\n that.setPassword(intent);\n readySetPwd = false;\n } else if (readyDelPwd) {\n that.delPassword(intent);\n readyDelPwd = false;\n } else if (readyGetNfcState) {\n that.getState(intent);\n readyGetNfcState = false;\n } else if (readyWriteAndLock) {\n var result = that.write(intent);\n if (result == 999) {\n // 已设置密码保护\n readyWriteAndLock = false;\n return;\n }\n setTimeout(function () {\n that.setPassword(intent);\n }, 100);\n readyWriteAndLock = false;\n } else {\n that.read(intent);\n readyRead = false;\n }\n }\n },\n write: function write(intent) {\n try {\n toast('请勿移开标签 正在写入...');\n __f__(\"log\", \"NFC写入内容 writeUri = \" + writeUri, \" at utils/ouu-nfc.js:170\");\n // let textBytes = plus.android.invoke(writeUri, \"getBytes\");\n var uri = Uri.parse(writeUri);\n var message = new NdefMessage([new NdefRecord.createUri(uri)]);\n __f__(\"log\", \"==== message ===>\", message, \" at utils/ouu-nfc.js:174\");\n var Ndef = plus.android.importClass('android.nfc.tech.Ndef');\n var NdefFormatable = plus.android.importClass('android.nfc.tech.NdefFormatable');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n var responseAuth0 = mfc.readPages(0x29);\n __f__(\"log\", \"responseAuth0=\" + JSON.stringify(responseAuth0), \" at utils/ouu-nfc.js:186\");\n if (responseAuth0[3] == 0x00) {\n toast('已设置密码保护,无法写入数据');\n return 999;\n }\n mfc.close();\n }\n var ndef = Ndef.get(tag);\n if (ndef != null) {\n // 待写入的数据长度\n var size = message.toByteArray().length;\n ndef.connect();\n if (!ndef.isWritable()) {\n ndef.close();\n toast('tag不允许写入!');\n return;\n }\n if (ndef.getMaxSize() < size) {\n ndef.close();\n toast('文件大小超出容量!');\n return;\n }\n ndef.writeNdefMessage(message);\n ndef.close();\n toast('写入数据成功!');\n return;\n } else {\n var format = NdefFormatable.get(tag);\n if (format != null) {\n try {\n format.connect();\n format.format(message);\n format.close();\n toast('格式化tag并且写入message');\n return;\n } catch (e) {\n toast('格式化tag失败.');\n return;\n }\n } else {\n toast('Tag不支持NDEF');\n return;\n }\n }\n } catch (e) {\n toast('写入失败');\n __f__(\"log\", \"error=\" + e, \" at utils/ouu-nfc.js:236\");\n }\n },\n read: function read(intent) {\n toast('请勿移开标签正在读取数据');\n var that = this;\n // NFC id\n var bytesId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);\n var nfc_id = that.byteArrayToHexString(bytesId);\n // console.log('nfc_id: ' + nfc_id);\n // let Parcelable = plus.android.importClass(\"android.os.Parcelable\");\n\n // tmp add\n // let Tag = plus.android.importClass('android.nfc.Tag');\n // let Ndef = plus.android.importClass('android.nfc.tech.Ndef');\n // let tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n // let ndef = Ndef.get(tag);\n // let nfc_type = that.byteArrayToHexString(ndef.getType());\n // console.log('nfc_type:\"' + nfc_type + '\"')\n\n var rawmsgs = intent.getParcelableArrayExtra(\"android.nfc.extra.NDEF_MESSAGES\");\n // let rawmsgs = plus.android.invoke(intent, 'getParcelableArrayExtra', 'android.nfc.extra.NDEF_MESSAGES');\n // let rawmsgs = intent.getParcelableArrayExtra();\n\n if (rawmsgs != null && rawmsgs.length > 0) {\n // console.log('rawmsgs:\"' + JSON.stringify(rawmsgs) + '\"')\n var records = rawmsgs[0].getRecords();\n // let records = plus.android.invoke(rawmsgs[0], 'getRecords');\n var tnf = records[0].getTnf();\n // let tnf = plus.android.invoke(records[0], 'getTnf');\n // console.log('tnf = ' + JSON.stringify(tnf))\n // console.log('TNF_WELL_KNOWN = ' + JSON.stringify(NdefRecord.TNF_WELL_KNOWN))\n // console.log('TNF_ABSOLUTE_URI = ' + JSON.stringify(NdefRecord.TNF_ABSOLUTE_URI))\n\n var recordType = records[0].getType();\n // console.log('recordType = ' + JSON.stringify(recordType))\n // console.log('RTD_URI = ' + JSON.stringify(NdefRecord.RTD_URI))\n\n var result = records[0].getPayload();\n var data = '';\n if (tnf.__UUID__ == NdefRecord.TNF_WELL_KNOWN.value) {\n __f__(\"log\", 'tnf == TNF_WELL_KNOWN', \" at utils/ouu-nfc.js:279\");\n if (recordType == NdefRecord.RTD_URI) {\n // URI based on payload\n // 在URI Record Payload中,第一个字节指明URI的ID码,对应 UriPrefixMap\n __f__(\"log\", 'recordType == NdefRecord.RTD_URI', \" at utils/ouu-nfc.js:282\");\n // console.log('result[0]:\"' + result[0] + '\"')\n\n var uriPrefix = UriPrefixMap[result[0]];\n __f__(\"log\", 'uriPrefix:\"' + uriPrefix + '\"', \" at utils/ouu-nfc.js:286\");\n result.shift(); // 去除URI的ID码\n\n data = plus.android.newObject(\"java.lang.String\", result);\n data = uriPrefix + data;\n }\n // } else if (tnf.__UUID__ == NdefRecord.TNF_ABSOLUTE_URI.value) {\n // \tconsole.log('tnf == TNF_ABSOLUTE_URI')\n } else {\n __f__(\"log\", 'tnf:\"' + tnf + '\"', \" at utils/ouu-nfc.js:295\");\n data = plus.android.newObject(\"java.lang.String\", result);\n }\n\n // console.log('result:\"' + result + '\"')\n // console.log('NFC 数据:\"' + data + '\"')\n // toast('NFC 数据:' + data);\n // plus.runtime.openURL(data, function(res) { \n // \tconsole.log(\"打开浏览器路径失败!----\", res); \n // }); \n // return data;\n readResult = {\n id: nfc_id,\n data: data\n };\n } else {\n // toast('没有读取到数据');\n readResult = {\n id: nfc_id,\n data: ''\n };\n }\n __f__(\"log\", 'NFC 数据:' + JSON.stringify(readResult), \" at utils/ouu-nfc.js:317\");\n uni.$emit('NfcRead', readResult);\n },\n setPassword: function setPassword(intent) {\n try {\n toast('请勿移开标签 正在设置密码...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n\n // let response = plus.android.invoke(mfc, 'transceive', [0x1B, pwdDefault[0], pwdDefault[1], pwdDefault[2], pwdDefault[3]])\n // // let response = mfc.transceive([0x1B, pwdDefault[0], pwdDefault[1], pwdDefault[2], pwdDefault[3]])\n // console.log(\"询问登录 response=\" + JSON.stringify(response));\n\n //pack置为默认\n mfc.writePage(0x2C, [0x00, 0x00, 0x00, 0x00]);\n\n // set PWD: 设置密码为用户设置的密码\n mfc.writePage(0x2B, pwdBytes);\n\n // 设置Auth0 auth0实际控制是否启用密码保护 设置为00表示从第0页开始提供保护\n // let responseAuth0 = mfc.readPages(0x29)\n // console.log(\"responseAuth0=\" + JSON.stringify(responseAuth0));\n mfc.writePage(0x29, [0x04, 0x00, 0x00, 0x00]);\n mfc.close();\n toast('设置密码成功!');\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('设置密码失败');\n __f__(\"log\", \"设置密码失败 error=\" + e, \" at utils/ouu-nfc.js:355\");\n }\n },\n delPassword: function delPassword(intent) {\n try {\n toast('请勿移开标签 正在清除密码...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n // let mfc2 = plus.android.invoke(MifareUltralight, 'get', tag) // to do \n\n if (mfc != null) {\n mfc.connect();\n\n //js不支持无符号整数,无法传输大于0X7F的值\n // mfc.writePage(0x08, [0x01, 0x02, 0x03, 0x04])\n // mfc.writePage(0x09, [0x7D, 0x7E, 0x7F, (0x80>>>0)])\n // mfc.writePage(0x0A, [0x80>>>0, 0x81>>>0, 0xFE>>>0, 0xFF>>>0])\n // return\n\n //用用户设置的密码询问登录\n // let response = plus.android.invoke(mfc, 'transceive', [0x1B, pwdBytes[0], pwdBytes[1], pwdBytes[2], pwdBytes[3]])\n var response = mfc.transceive([0x1B, pwdBytes[0], pwdBytes[1], pwdBytes[2], pwdBytes[3]]);\n __f__(\"log\", \"询问登录 response=\" + JSON.stringify(response), \" at utils/ouu-nfc.js:379\");\n if (response != null) {\n // if (response[0] == 0x00 && response[1] == 0x00) {\n if (response == '0,0') {\n __f__(\"log\", \"密码校验正确\", \" at utils/ouu-nfc.js:384\");\n } else {\n mfc.close();\n __f__(\"log\", \"密码校验失败\", \" at utils/ouu-nfc.js:387\");\n toast('密码校验失败');\n return;\n }\n } else {\n mfc.close();\n __f__(\"log\", \"询问登录 response 无效\", \" at utils/ouu-nfc.js:393\");\n toast('密码验证失败 或 未设置密码');\n return;\n }\n\n //pack置为默认\n mfc.writePage(0x2C, [0x00, 0x00, 0x00, 0x00]);\n\n // set PWD: 设置密码为默认密码\n mfc.writePage(0x2B, pwdDefault);\n\n // set AUTHLIM:\n //将AUTHLIM(第42页,字节0,位2-0)设置为失败的最大密码验证尝试次数\n mfc.writePage(0x2A, [0x00, 0x05, 0x00, 0x00]);\n\n // 设置Auth0 auth0实际控制是否启用密码保护 设置为FF表示禁用密码保护\n // let responseAuth0 = mfc.readPages(0x29)\n // console.log(\"responseAuth0=\" + JSON.stringify(responseAuth0));\n // mfc.writePage(0x29, [0x04, 0x00, 0x00, 0xFF])\n //js不支持无符号整数,无法传输大于0X7F的值\n mfc.writePage(0x29, [0x04, 0x00, 0x00, 0x7F]);\n mfc.close();\n toast('清除密码成功!');\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('清除密码失败');\n __f__(\"log\", \"清除密码失败 error=\" + e, \" at utils/ouu-nfc.js:424\");\n }\n },\n getState: function getState(intent) {\n try {\n toast('请勿移开标签 正在获取NFC状态...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n var responseAuth0 = mfc.readPages(0x29);\n __f__(\"log\", \"responseAuth0=\" + JSON.stringify(responseAuth0), \" at utils/ouu-nfc.js:439\");\n if (responseAuth0[3] == 0x00) {\n toast('已设置密码保护');\n } else if (responseAuth0[3] == 0x7F || responseAuth0[3] == 0xFF || responseAuth0[3] == -1) {\n toast('尚未设置密码保护');\n } else {\n toast('NFC状态未知:' + JSON.stringify(responseAuth0));\n }\n mfc.close();\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('获取NFC状态失败');\n __f__(\"log\", \"获取NFC状态失败 error=\" + e, \" at utils/ouu-nfc.js:457\");\n }\n },\n byteArrayToHexString: function byteArrayToHexString(inarray) {\n // converts byte arrays to string \n var i, j, inn;\n var hex = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\"];\n var out = \"\";\n for (j = 0; j < inarray.length; ++j) {\n inn = inarray[j] & 0xff;\n i = inn >>> 4 & 0x0f;\n out += hex[i];\n i = inn & 0x0f;\n out += hex[i];\n }\n return out;\n },\n writeData: function writeData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyWriteData = true;\n toast('请将NFC标签靠近!');\n },\n readData: function readData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyRead = true;\n toast('请将NFC标签靠近!');\n },\n setPwdData: function setPwdData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n S;\n return;\n }\n // 监听事件,触发条件\n readySetPwd = true;\n toast('请将NFC标签靠近!');\n },\n delPwdData: function delPwdData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyDelPwd = true;\n toast('请将NFC标签靠近!');\n },\n getNfcState: function getNfcState() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyGetNfcState = true;\n toast('请将NFC标签靠近!');\n },\n writeAndLock: function writeAndLock() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyWriteAndLock = true;\n toast('请将NFC标签靠近!');\n },\n // 输入文本改变\n inputChanage: function inputChanage(res) {\n __f__(\"log\", \"正在编辑写入数据...\", res, \" at utils/ouu-nfc.js:530\");\n writeUri = res;\n }\n};\nexports.default = _default;\nfunction toast(content) {\n uni.showToast({\n title: content,\n icon: 'none'\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvb3V1LW5mYy5qcyJdLCJuYW1lcyI6WyJwYWNrYWdlX05kZWZSZWNvcmQiLCJwYWNrYWdlX05kZWZNZXNzYWdlIiwicGFja2FnZV9URUNIX0RJU0NPVkVSRUQiLCJwYWNrYWdlX0ludGVudCIsInBhY2thZ2VfQWN0aXZpdHkiLCJwYWNrYWdlX1BlbmRpbmdJbnRlbnQiLCJwYWNrYWdlX0ludGVudEZpbHRlciIsInBhY2thZ2VfTmZjQWRhcHRlciIsInBhY2thZ2VfTmRlZiIsInBhY2thZ2VfTmRlZkZvcm1hdGFibGUiLCJwYWNrYWdlX1BhcmNlbGFibGUiLCJwYWNrYWdlX1N0cmluZyIsIk5mY0FkYXB0ZXIiLCJOZGVmUmVjb3JkIiwiTmRlZk1lc3NhZ2UiLCJVcmkiLCJyZWFkeVdyaXRlRGF0YSIsInJlYWR5UmVhZCIsInJlYWR5U2V0UHdkIiwicmVhZHlEZWxQd2QiLCJyZWFkeUdldE5mY1N0YXRlIiwicmVhZHlXcml0ZUFuZExvY2siLCJub05GQyIsInRlY2hMaXN0c0FycmF5IiwiVXJpUHJlZml4TWFwIiwid3JpdGVVcmkiLCJyZWFkUmVzdWx0IiwicHdkQnl0ZXMiLCJwd2REZWZhdWx0IiwibGlzdGVuTkZDU3RhdHVzIiwidGhhdCIsIm1haW4iLCJwbHVzIiwiYW5kcm9pZCIsInJ1bnRpbWVNYWluQWN0aXZpdHkiLCJJbnRlbnQiLCJpbXBvcnRDbGFzcyIsIkFjdGl2aXR5IiwiUGVuZGluZ0ludGVudCIsIkludGVudEZpbHRlciIsIm5mY0FkYXB0ZXIiLCJnZXREZWZhdWx0QWRhcHRlciIsInVuaSIsInNob3dUb2FzdCIsInRpdGxlIiwiaWNvbiIsImlzRW5hYmxlZCIsImludGVudCIsImdldENsYXNzIiwiYWRkRmxhZ3MiLCJGTEFHX0FDVElWSVRZX1NJTkdMRV9UT1AiLCJwZW5kaW5nSW50ZW50IiwiZ2V0QWN0aXZpdHkiLCJuZGVmIiwiYWRkRGF0YVR5cGUiLCJpbnRlbnRGaWx0ZXJzQXJyYXkiLCJnbG9iYWxFdmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRUaW1lb3V0IiwibmZjUnVuaW5nIiwiZSIsImRpc2FibGVGb3JlZ3JvdW5kRGlzcGF0Y2giLCJlbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2giLCJnZXRJbnRlbnQiLCJnZXRBY3Rpb24iLCJ3cml0ZSIsInJlYWQiLCJzZXRQYXNzd29yZCIsImRlbFBhc3N3b3JkIiwiZ2V0U3RhdGUiLCJyZXN1bHQiLCJ0b2FzdCIsInVyaSIsInBhcnNlIiwibWVzc2FnZSIsImNyZWF0ZVVyaSIsIk5kZWYiLCJOZGVmRm9ybWF0YWJsZSIsInRhZyIsImdldFBhcmNlbGFibGVFeHRyYSIsIkVYVFJBX1RBRyIsIk1pZmFyZVVsdHJhbGlnaHQiLCJtZmMiLCJnZXQiLCJjb25uZWN0IiwicmVzcG9uc2VBdXRoMCIsInJlYWRQYWdlcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbG9zZSIsInNpemUiLCJ0b0J5dGVBcnJheSIsImxlbmd0aCIsImlzV3JpdGFibGUiLCJnZXRNYXhTaXplIiwid3JpdGVOZGVmTWVzc2FnZSIsImZvcm1hdCIsImJ5dGVzSWQiLCJnZXRCeXRlQXJyYXlFeHRyYSIsIkVYVFJBX0lEIiwibmZjX2lkIiwiYnl0ZUFycmF5VG9IZXhTdHJpbmciLCJyYXdtc2dzIiwiZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEiLCJyZWNvcmRzIiwiZ2V0UmVjb3JkcyIsInRuZiIsImdldFRuZiIsInJlY29yZFR5cGUiLCJnZXRUeXBlIiwiZ2V0UGF5bG9hZCIsImRhdGEiLCJfX1VVSURfXyIsIlRORl9XRUxMX0tOT1dOIiwidmFsdWUiLCJSVERfVVJJIiwidXJpUHJlZml4Iiwic2hpZnQiLCJuZXdPYmplY3QiLCJpZCIsIiRlbWl0Iiwid3JpdGVQYWdlIiwicmVzcG9uc2UiLCJ0cmFuc2NlaXZlIiwiaW5hcnJheSIsImkiLCJqIiwiaW5uIiwiaGV4Iiwib3V0Iiwid3JpdGVEYXRhIiwicmVhZERhdGEiLCJzZXRQd2REYXRhIiwiUyIsImRlbFB3ZERhdGEiLCJnZXROZmNTdGF0ZSIs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QVUsRUFBRSxzQkFBVztJQUN0QixJQUFJaEgsS0FBSyxFQUFFO01BQ1ZpRCxLQUFLLENBQUMsc0JBQXNCLENBQUM7TUFDN0I7SUFDRDtJQUNBO0lBQ0FwRCxXQUFXLEdBQUcsSUFBSTtJQUNsQm9ELEtBQUssQ0FBQyxZQUFZLENBQUM7RUFDcEIsQ0FBQztFQUNEZ0UsV0FBVyxFQUFFLHVCQUFXO0lBQ3ZCLElBQUlqSCxLQUFLLEVBQUU7TUFDVmlELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztNQUM3QjtJQUNEO0lBQ0E7SUFDQW5ELGdCQUFnQixHQUFHLElBQUk7SUFDdkJtRCxLQUFLLENBQUMsWUFBWSxDQUFDO0VBQ3BCLENBQUM7RUFDRGlFLFlBQVksRUFBRSx3QkFBVztJQUN4QixJQUFJbEgsS0FBSyxFQUFFO01BQ1ZpRCxLQUFLLENBQUMsc0JBQXNCLENBQUM7TUFDN0I7SUFDRDtJQUNBO0lBQ0FsRCxpQkFBaUIsR0FBRyxJQUFJO0lBQ3hCa0QsS0FBSyxDQUFDLFlBQVksQ0FBQztFQUNwQixDQUFDO0VBQ0Q7RUFDQWtFLFlBQVksRUFBRSxzQkFBU0MsR0FBRyxFQUFFO0lBQzNCLGFBQVksYUFBYSxFQUFFQSxHQUFHO0lBQzlCakgsUUFBUSxHQUFHaUgsR0FBRztFQUNmO0FBQ0QsQ0FBQztBQUFBO0FBRUQsU0FBU25FLEtBQUssQ0FBQ29FLE9BQU8sRUFBRTtFQUN2QmpHLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDO0lBQ2JDLEtBQUssRUFBRStGLE9BQU87SUFDZDlGLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQztBQUNILEMiLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDljIXot6/lvoRcclxuY29uc3QgcGFja2FnZV9OZGVmUmVjb3JkID0gJ2FuZHJvaWQubmZjLk5kZWZSZWNvcmQnO1xyXG5jb25zdCBwYWNrYWdlX05kZWZNZXNzYWdlID0gJ2FuZHJvaWQubmZjLk5kZWZNZXNzYWdlJztcclxuY29uc3QgcGFja2FnZV9URUNIX0RJU0NPVkVSRUQgPSAnYW5kcm9pZC5uZmMuYWN0aW9uLlRFQ0hfRElTQ09WRVJFRCc7XHJcbmNvbnN0IHBhY2thZ2VfSW50ZW50ID0gJ2FuZHJvaWQuY29udGVudC5JbnRlbnQnO1xyXG5jb25zdCBwYWNrYWdlX0FjdGl2aXR5ID0gJ2FuZHJvaWQuYXBwLkFjdGl2aXR5JztcclxuY29uc3QgcGFja2FnZV9QZW5kaW5nSW50ZW50ID0gJ2FuZHJvaWQuYXBwLlBlbmRpbmdJbnRlbnQnO1xyXG5jb25zdCBwYWNrYWdlX0ludGVudEZpbHRlciA9ICdhbmRyb2lkLmNvbnRlbnQuSW50ZW50RmlsdGVyJztcclxuY29uc3QgcGFja2FnZV9OZmNBZGFwdGVyID0gJ2FuZHJvaWQubmZjLk5mY0FkYXB0ZXInO1xyXG5jb25zdCBwYWNrYWdlX05kZWYgPSAnYW5kcm9pZC5uZmMudGVjaC5OZGVmJztcclxuY29uc3QgcGFja2FnZV9OZGVmRm9ybWF0YWJsZSA9ICdhbmRyb2lkLm5mYy50ZWNoLk5kZWZGb3JtYXRhYmxlJztcclxuY29uc3QgcGFja2FnZV9QYXJjZWxhYmxlID0gJ2FuZHJvaWQub3MuUGFyY2VsYWJsZSc7XHJcbmNvbnN0IHBhY2thZ2VfU3RyaW5nID0gJ2phdmEubGFuZy5TdHJpbmcnO1xyXG5cclxubGV0IE5mY0FkYXB0ZXI7XHJcbmxldCBOZGVmUmVjb3JkO1xyXG5sZXQgTmRlZk1lc3NhZ2U7XHJcbmxldCBVcmk7XHJcbmxldCByZWFkeVdyaXRlRGF0YSA9IGZhbHNlO1xyXG5sZXQgcmVhZHlSZWFkID0gZmFsc2U7XHJcbmxldCByZWFkeVNldFB3ZCA9IGZhbHNlO1xyXG5sZXQgcmVhZHlEZWxQd2QgPSBmYWxzZTtcclxubGV0IHJlYWR5R2V0TmZjU3RhdGUgPSBmYWxzZTtcclxubGV0IHJlYWR5V3JpdGVBbmRMb2NrID0gZmFsc2U7XHJcbmxldCBub05GQyA9IGZhbHNlO1xyXG5sZXQgdGVjaExpc3RzQXJyYXkgPSBbXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLklzb0RlcCddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZmNBJ10sXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLk5mY0InXSxcclxuXHRbJ2FuZHJvaWQubmZjLnRlY2guTmZjRiddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZmNmJ10sXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLk5mY1YnXSxcclxuXHRbJ2FuZHJvaWQubmV0LlVyaSddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZGVmRm9ybWF0YWJsZSddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5NaWZhcmVDbGFzc2knXSxcclxuXHRbJ2FuZHJvaWQubmZjLnRlY2guTWlmYXJlVWx0cmFsaWdodCddXHJcbl07XHJcblxyXG5sZXQgVXJpUHJlZml4TWFwID0gW107XHJcblVyaVByZWZpeE1hcFsweDAwXSA9ICcnO1xyXG5VcmlQcmVmaXhNYXBbMHgwMV0gPSAnaHR0cDovL3d3dy4nO1xyXG5VcmlQcmVmaXhNYXBbMHgwMl0gPSAnaHR0cHM6Ly93d3cuJztcclxuVXJpUHJlZml4TWFwWzB4MDNdID0gJ2h0dHA6Ly8nO1xyXG5VcmlQcmVmaXhNYXBbMHgwNF0gPSAnaHR0cHM6Ly8nO1xyXG5VcmlQcmVmaXhNYXBbMHgwNV0gPSAndGVsOic7XHJcblVyaVByZWZpeE1hcFsweDA2XSA9ICdtYWlsdG86JztcclxuVXJpUHJlZml4TWFwWzB4MDddID0gJ2Z0cDovL2Fub255bW91czphbm9ueW1vdXNAJztcclxuVXJpUHJlZml4TWFwWzB4MDhdID0gJ2Z0cDovL2Z0cC4nO1xyXG5VcmlQcmVmaXhNYXBbMHgwOV0gPSAnZnRwczovLyc7XHJcblxyXG5sZXQgd3JpdGVVcmkgPSAnaHR0cDovL3d3dy5iZXN3ZWxsLmNvbSc7IC8vIOimgeWGmeWFpeeahOaVsOaNrlxyXG5sZXQgcmVhZFJlc3VsdCA9ICcnOyAvLyBORkPor7vlj5bliLDnmoTmlbDmja5cclxubGV0IHB3ZEJ5dGVzID0gWzEsIDIsIDMsIDRdOyAvLyDlvoXlhpnlhaXnmoTlr4bnoIFcclxubGV0IHB3ZERlZmF1bHQgPSBbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0gLy8g5riF6Zmk5a+G56CB5ZCO6K6+572u55qE6buY6K6k5YC8XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bGlzdGVuTkZDU3RhdHVzOiBmdW5jdGlvbigpIHtcclxuXHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdHRyeSB7XHJcblx0XHRcdGxldCBtYWluID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKTtcclxuXHRcdFx0bGV0IEludGVudCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5jb250ZW50LkludGVudCcpO1xyXG5cdFx0XHRsZXQgQWN0aXZpdHkgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuYXBwLkFjdGl2aXR5Jyk7XHJcblx0XHRcdGxldCBQZW5kaW5nSW50ZW50ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLmFwcC5QZW5kaW5nSW50ZW50Jyk7XHJcblx0XHRcdGxldCBJbnRlbnRGaWx0ZXIgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuY29udGVudC5JbnRlbnRGaWx0ZXInKTtcclxuXHRcdFx0VXJpID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5ldC5VcmknKTtcclxuXHRcdFx0TmZjQWRhcHRlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMuTmZjQWRhcHRlcicpO1xyXG5cdFx0XHRsZXQgbmZjQWRhcHRlciA9IE5mY0FkYXB0ZXIuZ2V0RGVmYXVsdEFkYXB0ZXIobWFpbik7XHJcblxyXG5cdFx0XHRpZiAobmZjQWRhcHRlciA9PSBudWxsKSB7XHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+iuvuWkh+S4jeaUr+aMgU5GQ++8gScsXHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdG5vTkZDID0gdHJ1ZTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICghbmZjQWRhcHRlci5pc0VuYWJsZWQoKSkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0dGl0bGU6ICfor7flnKjns7vnu5/orr7nva7kuK3lhYjlkK/nlKhORkPlip/og73vvIEnLFxyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0bm9ORkMgPSB0cnVlO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRub05GQyA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgaW50ZW50ID0gbmV3IEludGVudChtYWluLCBtYWluLmdldENsYXNzKCkpO1xyXG5cdFx0XHRpbnRlbnQuYWRkRmxhZ3MoSW50ZW50LkZMQUdfQUNUSVZJVFlfU0lOR0xFX1RPUCk7XHJcblx0XHRcdGxldCBwZW5kaW5nSW50ZW50ID0gUGVuZGluZ0ludGVudC5nZXRBY3Rpdml0eShtYWluLCAwLCBpbnRlbnQsIDApO1xyXG5cdFx0XHRsZXQgbmRlZiA9IG5ldyBJbnRlbnRGaWx0ZXIoXCJhbmRyb2lkLm5mYy5hY3Rpb24uVEVDSF9ESVNDT1ZFUkVEXCIpO1xyXG5cdFx0XHRuZGVmLmFkZERhdGFUeXBlKFwiKi8qXCIpO1xyXG5cdFx0XHRsZXQgaW50ZW50RmlsdGVyc0FycmF5ID0gW25kZWZdO1xyXG5cclxuXHRcdFx0cGx1cy5nbG9iYWxFdmVudC5hZGRFdmVudExpc3RlbmVyKCduZXdpbnRlbnQnLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnbmV3aW50ZW50IHJ1bm5pbmcnKTtcclxuXHRcdFx0XHQvLyDnm5HlkKwgTkZDXHJcblx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0dGhhdC5uZmNSdW5pbmcoKVxyXG5cdFx0XHRcdH0sIDEwMCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRwbHVzLmdsb2JhbEV2ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BhdXNlJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdwYXVzZSBydW5uaW5nJyk7XHJcblx0XHRcdFx0aWYgKG5mY0FkYXB0ZXIpIHtcclxuXHRcdFx0XHRcdC8v5YWz6Zet5YmN5Y+w6LCD5bqm57O757ufXHJcblx0XHRcdFx0XHQvL+aBouWkjem7mOiupOeKtuaAgVxyXG5cdFx0XHRcdFx0bmZjQWRhcHRlci5kaXNhYmxlRm9yZWdyb3VuZERpc3BhdGNoKG1haW4pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdHBsdXMuZ2xvYmFsRXZlbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVzdW1lJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdyZXN1bWUgcnVubmluZycpO1xyXG5cdFx0XHRcdGlmIChuZmNBZGFwdGVyKSB7XHJcblx0XHRcdFx0XHQvL+W8gOWQr+WJjeWPsOiwg+W6puezu+e7n1xyXG5cdFx0XHRcdFx0bmZjQWRhcHRlci5lbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2gobWFpbiwgcGVuZGluZ0ludGVudCwgaW50ZW50RmlsdGVyc0FycmF5LFxyXG5cdFx0XHRcdFx0XHR0ZWNoTGlzdHNBcnJheSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0bmZjQWRhcHRlci5lbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2gobWFpbiwgcGVuZGluZ0ludGVudCwgaW50ZW50RmlsdGVyc0FycmF5LCB0ZWNoTGlzdHNBcnJheSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRuZmNSdW5pbmc6IGZ1bmN0aW9uKCkge1xyXG5cdFx0TmRlZlJlY29yZCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmZjLk5kZWZSZWNvcmRcIik7XHJcblx0XHROZGVmTWVzc2FnZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmZjLk5kZWZNZXNzYWdlXCIpO1xyXG5cdFx0bGV0IG1haW4gPSBwbHVzLmFuZHJvaWQucnVudGltZU1haW5BY3Rpdml0eSgpO1xyXG5cdFx0bGV0IGludGVudCA9IG1haW4uZ2V0SW50ZW50KCk7XHJcblx0XHQvLyBsZXQgaW50ZW50ID0gcGx1cy5hbmRyb2lkLmludm9rZShtYWluLCAnZ2V0SW50ZW50Jyk7XHJcblx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0Y29uc29sZS5sb2coXCJhY3Rpb24gdHlwZTpcIiArIGludGVudC5nZXRBY3Rpb24oKSk7XHJcblxyXG5cdFx0aWYgKHBhY2thZ2VfVEVDSF9ESVNDT1ZFUkVEID09IGludGVudC5nZXRBY3Rpb24oKSkge1xyXG5cdFx0XHRpZiAocmVhZHlXcml0ZURhdGEpIHtcclxuXHRcdFx0XHR0aGF0LndyaXRlKGludGVudCk7XHJcblx0XHRcdFx0cmVhZHlXcml0ZURhdGEgPSBmYWxzZTtcclxuXHRcdFx0fSBlbHNlIGlmIChyZWFkeVJlYWQpIHtcclxuXHRcdFx0XHR0aGF0LnJlYWQoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeVJlYWQgPSBmYWxzZTtcclxuXHRcdFx0fSBlbHNlIGlmIChyZWFkeVNldFB3ZCkge1xyXG5cdFx0XHRcdHRoYXQuc2V0UGFzc3dvcmQoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeVNldFB3ZCA9IGZhbHNlO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHJlYWR5RGVsUHdkKSB7XHJcblx0XHRcdFx0dGhhdC5kZWxQYXNzd29yZChpbnRlbnQpO1xyXG5cdFx0XHRcdHJlYWR5RGVsUHdkID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSBpZiAocmVhZHlHZXROZmNTdGF0ZSkge1xyXG5cdFx0XHRcdHRoYXQuZ2V0U3RhdGUoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeUdldE5mY1N0YXRlID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSBpZiAocmVhZHlXcml0ZUFuZExvY2spIHtcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0gdGhhdC53cml0ZShpbnRlbnQpO1xyXG5cdFx0XHRcdGlmIChyZXN1bHQgPT0gOTk5KSB7IC8vIOW3suiuvue9ruWvhueggeS/neaKpFxyXG5cdFx0XHRcdFx0cmVhZHlXcml0ZUFuZExvY2sgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdFx0XHR0aGF0LnNldFBhc3N3b3JkKGludGVudClcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHRcdHJlYWR5V3JpdGVBbmRMb2NrID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhhdC5yZWFkKGludGVudCk7XHJcblx0XHRcdFx0cmVhZHlSZWFkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdHdyaXRlKGludGVudCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dG9hc3QoJ+ivt+WLv+enu+W8gOagh+etviDmraPlnKjlhpnlhaUuLi4nKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCJORkPlhpnlhaXlhoXlrrkgd3JpdGVVcmkgPSBcIiArIHdyaXRlVXJpKTtcclxuXHRcdFx0Ly8gbGV0IHRleHRCeXRlcyA9IHBsdXMuYW5kcm9pZC5pbnZva2Uod3JpdGVVcmksIFwiZ2V0Qnl0ZXNcIik7XHJcblx0XHRcdGxldCB1cmkgPSBVcmkucGFyc2Uod3JpdGVVcmkpXHJcblx0XHRcdGxldCBtZXNzYWdlID0gbmV3IE5kZWZNZXNzYWdlKFtuZXcgTmRlZlJlY29yZC5jcmVhdGVVcmkodXJpKV0pO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIj09PT0gbWVzc2FnZSA9PT0+XCIsIG1lc3NhZ2UpXHJcblx0XHRcdGxldCBOZGVmID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk5kZWYnKTtcclxuXHRcdFx0bGV0IE5kZWZGb3JtYXRhYmxlID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk5kZWZGb3JtYXRhYmxlJyk7XHJcblx0XHRcdGxldCB0YWcgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUV4dHJhKE5mY0FkYXB0ZXIuRVhUUkFfVEFHKTtcclxuXHRcdFx0XHJcblx0XHRcdGxldCBNaWZhcmVVbHRyYWxpZ2h0ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk1pZmFyZVVsdHJhbGlnaHQnKTtcclxuXHRcdFx0bGV0IG1mYyA9IE1pZmFyZVVsdHJhbGlnaHQuZ2V0KHRhZyk7XHJcblx0XHRcdFxyXG5cdFx0XHRpZiAobWZjICE9IG51bGwpIHtcclxuXHRcdFx0XHRtZmMuY29ubmVjdCgpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHRsZXQgcmVzcG9uc2VBdXRoMCA9IG1mYy5yZWFkUGFnZXMoMHgyOSlcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcInJlc3BvbnNlQXV0aDA9XCIgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZUF1dGgwKSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlQXV0aDBbM10gPT0gMHgwMCkge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ+W3suiuvue9ruWvhueggeS/neaKpO+8jOaXoOazleWGmeWFpeaVsOaNricpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIDk5OTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxldCBuZGVmID0gTmRlZi5nZXQodGFnKTtcclxuXHRcdFx0aWYgKG5kZWYgIT0gbnVsbCkge1xyXG5cdFx0XHRcdC8vIOW+heWGmeWFpeeahOaVsOaNrumVv+W6plxyXG5cdFx0XHRcdGxldCBzaXplID0gbWVzc2FnZS50b0J5dGVBcnJheSgpLmxlbmd0aDtcclxuXHRcdFx0XHRuZGVmLmNvbm5lY3QoKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAoIW5kZWYuaXNXcml0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRuZGVmLmNsb3NlKCk7XHJcblx0XHRcdFx0XHR0b2FzdCgndGFn5LiN5YWB6K645YaZ5YWl77yBJyk7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChuZGVmLmdldE1heFNpemUoKSA8IHNpemUpIHtcclxuXHRcdFx0XHRcdG5kZWYuY2xvc2UoKTtcclxuXHRcdFx0XHRcdHRvYXN0KCfmlofku7blpKflsI/otoXlh7rlrrnph4/vvIEnKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0bmRlZi53cml0ZU5kZWZNZXNzYWdlKG1lc3NhZ2UpO1xyXG5cdFx0XHRcdG5kZWYuY2xvc2UoKTtcclxuXHRcdFx0XHR0b2FzdCgn5YaZ5YWl5pWw5o2u5oiQ5Yqf77yBJyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGxldCBmb3JtYXQgPSBOZGVmRm9ybWF0YWJsZS5nZXQodGFnKTtcclxuXHRcdFx0XHRpZiAoZm9ybWF0ICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5jb25uZWN0KCk7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5mb3JtYXQobWVzc2FnZSk7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5jbG9zZSgpO1xyXG5cdFx0XHRcdFx0XHR0b2FzdCgn5qC85byP5YyWdGFn5bm25LiU5YaZ5YWlbWVzc2FnZScpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0XHRcdHRvYXN0KCfmoLzlvI/ljJZ0YWflpLHotKUuJyk7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ1RhZ+S4jeaUr+aMgU5ERUYnKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0dG9hc3QoJ+WGmeWFpeWksei0pScpO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcImVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblxyXG5cdH0sXHJcblx0cmVhZChpbnRlbnQpIHtcclxuXHRcdHRvYXN0KCfor7fli7/np7vlvIDmoIfnrb7mraPlnKjor7vlj5bmlbDmja4nKTtcclxuXHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdC8vIE5GQyBpZFxyXG5cdFx0bGV0IGJ5dGVzSWQgPSBpbnRlbnQuZ2V0Qnl0ZUFycmF5RXh0cmEoTmZjQWRhcHRlci5FWFRSQV9JRCk7XHJcblx0XHRsZXQgbmZjX2lkID0gdGhhdC5ieXRlQXJyYXlUb0hleFN0cmluZyhieXRlc0lkKTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCduZmNfaWQ6ICcgKyBuZmNfaWQpO1xyXG5cdFx0Ly8gbGV0IFBhcmNlbGFibGUgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm9zLlBhcmNlbGFibGVcIik7XHJcblxyXG5cdFx0Ly8gdG1wIGFkZFxyXG5cdFx0Ly8gbGV0IFRhZyA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMuVGFnJyk7XHJcblx0XHQvLyBsZXQgTmRlZiA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMudGVjaC5OZGVmJyk7XHJcblx0XHQvLyBsZXQgdGFnID0gaW50ZW50LmdldFBhcmNlbGFibGVFeHRyYShOZmNBZGFwdGVyLkVYVFJBX1RBRyk7XHJcblx0XHQvLyBsZXQgbmRlZiA9IE5kZWYuZ2V0KHRhZyk7XHJcblx0XHQvLyBsZXQgbmZjX3R5cGUgPSB0aGF0LmJ5dGVBcnJheVRvSGV4U3RyaW5nKG5kZWYuZ2V0VHlwZSgpKTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCduZmNfdHlwZe+8mlwiJyArIG5mY190eXBlICsgJ1wiJylcclxuXHJcblx0XHRsZXQgcmF3bXNncyA9IGludGVudC5nZXRQYXJjZWxhYmxlQXJyYXlFeHRyYShcImFuZHJvaWQubmZjLmV4dHJhLk5ERUZfTUVTU0FHRVNcIik7XHJcblx0XHQvLyBsZXQgcmF3bXNncyA9IHBsdXMuYW5kcm9pZC5pbnZva2UoaW50ZW50LCAnZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEnLCAnYW5kcm9pZC5uZmMuZXh0cmEuTkRFRl9NRVNTQUdFUycpO1xyXG5cdFx0Ly8gbGV0IHJhd21zZ3MgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEoKTtcclxuXHJcblx0XHRpZiAocmF3bXNncyAhPSBudWxsICYmIHJhd21zZ3MubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygncmF3bXNnc++8mlwiJyArIEpTT04uc3RyaW5naWZ5KHJhd21zZ3MpICsgJ1wiJylcclxuXHRcdFx0bGV0IHJlY29yZHMgPSByYXdtc2dzWzBdLmdldFJlY29yZHMoKTtcclxuXHRcdFx0Ly8gbGV0IHJlY29yZHMgPSBwbHVzLmFuZHJvaWQuaW52b2tlKHJhd21zZ3NbMF0sICdnZXRSZWNvcmRzJyk7XHJcblx0XHRcdGxldCB0bmYgPSByZWNvcmRzWzBdLmdldFRuZigpO1xyXG5cdFx0XHQvLyBsZXQgdG5mID0gcGx1cy5hbmRyb2lkLmludm9rZShyZWNvcmRzWzBdLCAnZ2V0VG5mJyk7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCd0bmYgPSAnICsgSlNPTi5zdHJpbmdpZnkodG5mKSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ1RORl9XRUxMX0tOT1dOID0gJyArIEpTT04uc3RyaW5naWZ5KE5kZWZSZWNvcmQuVE5GX1dFTExfS05PV04pKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnVE5GX0FCU09MVVRFX1VSSSA9ICcgKyBKU09OLnN0cmluZ2lmeShOZGVmUmVjb3JkLlRORl9BQlNPTFVURV9VUkkpKVxyXG5cclxuXHRcdFx0bGV0IHJlY29yZFR5cGUgPSByZWNvcmRzWzBdLmdldFR5cGUoKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ3JlY29yZFR5cGUgPSAnICsgSlNPTi5zdHJpbmdpZnkocmVjb3JkVHlwZSkpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdSVERfVVJJID0gJyArIEpTT04uc3RyaW5naWZ5KE5kZWZSZWNvcmQuUlREX1VSSSkpXHJcblxyXG5cdFx0XHRsZXQgcmVzdWx0ID0gcmVjb3Jkc1swXS5nZXRQYXlsb2FkKCk7XHJcblx0XHRcdGxldCBkYXRhID0gJydcclxuXHJcblx0XHRcdGlmICh0bmYuX19VVUlEX18gPT0gTmRlZlJlY29yZC5UTkZfV0VMTF9LTk9XTi52YWx1ZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd0bmYgPT0gVE5GX1dFTExfS05PV04nKVxyXG5cdFx0XHRcdGlmIChyZWNvcmRUeXBlID09IE5kZWZSZWNvcmQuUlREX1VSSSkgeyAvLyBVUkkgYmFzZWQgb24gcGF5bG9hZFxyXG5cdFx0XHRcdFx0Ly8g5ZyoVVJJIFJlY29yZCBQYXlsb2Fk5Lit77yM56ys5LiA5Liq5a2X6IqC5oyH5piOVVJJ55qESUTnoIHvvIzlr7nlupQgVXJpUHJlZml4TWFwXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygncmVjb3JkVHlwZSA9PSBOZGVmUmVjb3JkLlJURF9VUkknKVxyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3Jlc3VsdFswXe+8mlwiJyArIHJlc3VsdFswXSArICdcIicpXHJcblxyXG5cdFx0XHRcdFx0bGV0IHVyaVByZWZpeCA9IFVyaVByZWZpeE1hcFtyZXN1bHRbMF1dXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygndXJpUHJlZml477yaXCInICsgdXJpUHJlZml4ICsgJ1wiJylcclxuXHRcdFx0XHRcdHJlc3VsdC5zaGlmdCgpIC8vIOWOu+mZpFVSSeeahElE56CBXHJcblxyXG5cdFx0XHRcdFx0ZGF0YSA9IHBsdXMuYW5kcm9pZC5uZXdPYmplY3QoXCJqYXZhLmxhbmcuU3RyaW5nXCIsIHJlc3VsdCk7XHJcblx0XHRcdFx0XHRkYXRhID0gdXJpUHJlZml4ICsgZGF0YVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB9IGVsc2UgaWYgKHRuZi5fX1VVSURfXyA9PSBOZGVmUmVjb3JkLlRORl9BQlNPTFVURV9VUkkudmFsdWUpIHtcclxuXHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKCd0bmYgPT0gVE5GX0FCU09MVVRFX1VSSScpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3RuZu+8mlwiJyArIHRuZiArICdcIicpXHJcblx0XHRcdFx0ZGF0YSA9IHBsdXMuYW5kcm9pZC5uZXdPYmplY3QoXCJqYXZhLmxhbmcuU3RyaW5nXCIsIHJlc3VsdCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdyZXN1bHTvvJpcIicgKyByZXN1bHQgKyAnXCInKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnTkZDIOaVsOaNru+8mlwiJyArIGRhdGEgKyAnXCInKVxyXG5cdFx0XHQvLyB0b2FzdCgnTkZDIOaVsOaNru+8micgKyBkYXRhKTtcclxuXHRcdFx0Ly8gcGx1cy5ydW50aW1lLm9wZW5VUkwoZGF0YSwgZnVuY3Rpb24ocmVzKSB7ICBcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhcIuaJk+W8gOa1j+iniOWZqOi3r+W+hOWksei0pe+8gS0tLS1cIiwgcmVzKTsgIFxyXG5cdFx0XHQvLyB9KTsgIFxyXG5cdFx0XHQvLyByZXR1cm4gZGF0YTtcclxuXHRcdFx0cmVhZFJlc3VsdCA9IHtcclxuXHRcdFx0XHRpZDogbmZjX2lkLFxyXG5cdFx0XHRcdGRhdGE6IGRhdGFcclxuXHRcdFx0fTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIHRvYXN0KCfmsqHmnInor7vlj5bliLDmlbDmja4nKTtcclxuXHRcdFx0cmVhZFJlc3VsdCA9IHtcclxuXHRcdFx0XHRpZDogbmZjX2lkLFxyXG5cdFx0XHRcdGRhdGE6ICcnXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygnTkZDIOaVsOaNru+8micgKyBKU09OLnN0cmluZ2lmeShyZWFkUmVzdWx0KSk7XHJcblx0XHR1bmkuJGVtaXQoJ05mY1JlYWQnLCByZWFkUmVzdWx0KVxyXG5cdH0sXHJcblx0c2V0UGFzc3dvcmQoaW50ZW50KSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHR0b2FzdCgn6K+35Yu/56e75byA5qCH562+IOato+WcqOiuvue9ruWvhueggS4uLicpO1xyXG5cclxuXHRcdFx0bGV0IE1pZmFyZVVsdHJhbGlnaHQgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQubmZjLnRlY2guTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRsZXQgdGFnID0gaW50ZW50LmdldFBhcmNlbGFibGVFeHRyYShOZmNBZGFwdGVyLkVYVFJBX1RBRyk7XHJcblx0XHRcdGxldCBtZmMgPSBNaWZhcmVVbHRyYWxpZ2h0LmdldCh0YWcpO1xyXG5cclxuXHRcdFx0aWYgKG1mYyAhPSBudWxsKSB7XHJcblx0XHRcdFx0bWZjLmNvbm5lY3QoKTtcclxuXHJcblx0XHRcdFx0Ly8gbGV0IHJlc3BvbnNlID0gcGx1cy5hbmRyb2lkLmludm9rZShtZmMsICd0cmFuc2NlaXZlJywgWzB4MUIsIHB3ZERlZmF1bHRbMF0sIHB3ZERlZmF1bHRbMV0sIHB3ZERlZmF1bHRbMl0sIHB3ZERlZmF1bHRbM11dKVxyXG5cdFx0XHRcdC8vIC8vIGxldCByZXNwb25zZSA9IG1mYy50cmFuc2NlaXZlKFsweDFCLCBwd2REZWZhdWx0WzBdLCBwd2REZWZhdWx0WzFdLCBwd2REZWZhdWx0WzJdLCBwd2REZWZhdWx0WzNdXSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIuivoumXrueZu+W9lSByZXNwb25zZT1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSk7XHJcblxyXG5cdFx0XHRcdC8vcGFja+e9ruS4uum7mOiupFxyXG5cdFx0XHRcdG1mYy53cml0ZVBhZ2UoMHgyQywgWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKVxyXG5cclxuXHRcdFx0XHQvLyBzZXQgUFdEOiAg6K6+572u5a+G56CB5Li655So5oi36K6+572u55qE5a+G56CBXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJCLCBwd2RCeXRlcylcclxuXHJcblx0XHRcdFx0Ly8g6K6+572uQXV0aDAgIGF1dGgw5a6e6ZmF5o6n5Yi25piv5ZCm5ZCv55So5a+G56CB5L+d5oqkIOiuvue9ruS4ujAw6KGo56S65LuO56ysMOmhteW8gOWni+aPkOS+m+S/neaKpFxyXG5cdFx0XHRcdC8vIGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHRtZmMud3JpdGVQYWdlKDB4MjksIFsweDA0LCAweDAwLCAweDAwLCAweDAwXSlcclxuXHJcblx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdFx0dG9hc3QoJ+iuvue9ruWvhueggeaIkOWKn++8gScpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0b2FzdCgnVGFn5LiN5pSv5oyBTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHR0b2FzdCgn6K6+572u5a+G56CB5aSx6LSlJyk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwi6K6+572u5a+G56CB5aSx6LSlIGVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRkZWxQYXNzd29yZChpbnRlbnQpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRvYXN0KCfor7fli7/np7vlvIDmoIfnrb4g5q2j5Zyo5riF6Zmk5a+G56CBLi4uJyk7XHJcblxyXG5cdFx0XHRsZXQgTWlmYXJlVWx0cmFsaWdodCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMudGVjaC5NaWZhcmVVbHRyYWxpZ2h0Jyk7XHJcblx0XHRcdGxldCB0YWcgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUV4dHJhKE5mY0FkYXB0ZXIuRVhUUkFfVEFHKTtcclxuXHRcdFx0bGV0IG1mYyA9IE1pZmFyZVVsdHJhbGlnaHQuZ2V0KHRhZyk7XHJcblx0XHRcdC8vIGxldCBtZmMyID0gcGx1cy5hbmRyb2lkLmludm9rZShNaWZhcmVVbHRyYWxpZ2h0LCAnZ2V0JywgdGFnKSAvLyB0byBkbyBcclxuXHJcblx0XHRcdGlmIChtZmMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdG1mYy5jb25uZWN0KCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly9qc+S4jeaUr+aMgeaXoOespuWPt+aVtOaVsO+8jOaXoOazleS8oOi+k+Wkp+S6jjBYN0bnmoTlgLxcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MDgsIFsweDAxLCAweDAyLCAweDAzLCAweDA0XSlcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MDksIFsweDdELCAweDdFLCAweDdGLCAoMHg4MD4+PjApXSlcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MEEsIFsweDgwPj4+MCwgMHg4MT4+PjAsIDB4RkU+Pj4wLCAweEZGPj4+MF0pXHJcblx0XHRcdFx0Ly8gcmV0dXJuXHJcblxyXG5cdFx0XHRcdC8v55So55So5oi36K6+572u55qE5a+G56CB6K+i6Zeu55m75b2VXHJcblx0XHRcdFx0Ly8gbGV0IHJlc3BvbnNlID0gcGx1cy5hbmRyb2lkLmludm9rZShtZmMsICd0cmFuc2NlaXZlJywgWzB4MUIsIHB3ZEJ5dGVzWzBdLCBwd2RCeXRlc1sxXSwgcHdkQnl0ZXNbMl0sIHB3ZEJ5dGVzWzNdXSlcclxuXHRcdFx0XHRsZXQgcmVzcG9uc2UgPSBtZmMudHJhbnNjZWl2ZShbMHgxQiwgcHdkQnl0ZXNbMF0sIHB3ZEJ5dGVzWzFdLCBwd2RCeXRlc1syXSwgcHdkQnl0ZXNbM11dKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6K+i6Zeu55m75b2VIHJlc3BvbnNlPVwiICsgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpKTtcclxuXHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdC8vIGlmIChyZXNwb25zZVswXSA9PSAweDAwICYmIHJlc3BvbnNlWzFdID09IDB4MDApIHtcclxuXHRcdFx0XHRcdGlmIChyZXNwb25zZSA9PSAnMCwwJykge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWvhueggeagoemqjOato+ehrlwiKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdG1mYy5jbG9zZSgpO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWvhueggeagoemqjOWksei0pVwiKTtcclxuXHRcdFx0XHRcdFx0dG9hc3QoJ+WvhueggeagoemqjOWksei0pScpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuivoumXrueZu+W9lSByZXNwb25zZSDml6DmlYhcIik7XHJcblx0XHRcdFx0XHR0b2FzdCgn5a+G56CB6aqM6K+B5aSx6LSlIOaIliDmnKrorr7nva7lr4bnoIEnKTtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9wYWNr572u5Li66buY6K6kXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJDLCBbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pXHJcblxyXG5cdFx0XHRcdC8vIHNldCBQV0Q6ICDorr7nva7lr4bnoIHkuLrpu5jorqTlr4bnoIFcclxuXHRcdFx0XHRtZmMud3JpdGVQYWdlKDB4MkIsIHB3ZERlZmF1bHQpXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gc2V0IEFVVEhMSU06XHJcblx0XHRcdFx0Ly/lsIZBVVRITElN77yI56ysNDLpobXvvIzlrZfoioIw77yM5L2NMi0w77yJ6K6+572u5Li65aSx6LSl55qE5pyA5aSn5a+G56CB6aqM6K+B5bCd6K+V5qyh5pWwXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJBLCBbMHgwMCwgMHgwNSwgMHgwMCwgMHgwMF0pXHJcblxyXG5cdFx0XHRcdC8vIOiuvue9rkF1dGgwICBhdXRoMOWunumZheaOp+WItuaYr+WQpuWQr+eUqOWvhueggeS/neaKpCDorr7nva7kuLpGRuihqOekuuemgeeUqOWvhueggeS/neaKpFxyXG5cdFx0XHRcdC8vIGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MjksIFsweDA0LCAweDAwLCAweDAwLCAweEZGXSlcclxuXHRcdFx0XHQvL2pz5LiN5pSv5oyB5peg56ym5Y+35pW05pWw77yM5peg5rOV5Lyg6L6T5aSn5LqOMFg3RueahOWAvFxyXG5cdFx0XHRcdG1mYy53cml0ZVBhZ2UoMHgyOSwgWzB4MDQsIDB4MDAsIDB4MDAsIDB4N0ZdKVxyXG5cclxuXHRcdFx0XHRtZmMuY2xvc2UoKTtcclxuXHRcdFx0XHR0b2FzdCgn5riF6Zmk5a+G56CB5oiQ5Yqf77yBJyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRvYXN0KCdUYWfkuI3mlK/mjIFNaWZhcmVVbHRyYWxpZ2h0Jyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHRvYXN0KCfmuIXpmaTlr4bnoIHlpLHotKUnKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCLmuIXpmaTlr4bnoIHlpLHotKUgZXJyb3I9XCIgKyBlKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGdldFN0YXRlKGludGVudCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dG9hc3QoJ+ivt+WLv+enu+W8gOagh+etviDmraPlnKjojrflj5ZORkPnirbmgIEuLi4nKTtcclxuXHJcblx0XHRcdGxldCBNaWZhcmVVbHRyYWxpZ2h0ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk1pZmFyZVVsdHJhbGlnaHQnKTtcclxuXHRcdFx0bGV0IHRhZyA9IGludGVudC5nZXRQYXJjZWxhYmxlRXh0cmEoTmZjQWRhcHRlci5FWFRSQV9UQUcpO1xyXG5cdFx0XHRsZXQgbWZjID0gTWlmYXJlVWx0cmFsaWdodC5nZXQodGFnKTtcclxuXHJcblx0XHRcdGlmIChtZmMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdG1mYy5jb25uZWN0KCk7XHJcblxyXG5cdFx0XHRcdGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAocmVzcG9uc2VBdXRoMFszXSA9PSAweDAwKSB7XHJcblx0XHRcdFx0XHR0b2FzdCgn5bey6K6+572u5a+G56CB5L+d5oqkJyk7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChyZXNwb25zZUF1dGgwWzNdID09IDB4N0YgfHwgcmVzcG9uc2VBdXRoMFszXSA9PSAweEZGIHx8IHJlc3BvbnNlQXV0aDBbM10gPT0gLTEpIHtcclxuXHRcdFx0XHRcdHRvYXN0KCflsJrmnKrorr7nva7lr4bnoIHkv53miqQnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ05GQ+eKtuaAgeacquefpe+8micgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZUF1dGgwKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1mYy5jbG9zZSgpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0b2FzdCgnVGFn5LiN5pSv5oyBTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHR0b2FzdCgn6I635Y+WTkZD54q25oCB5aSx6LSlJyk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwi6I635Y+WTkZD54q25oCB5aSx6LSlIGVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRieXRlQXJyYXlUb0hleFN0cmluZzogZnVuY3Rpb24oaW5hcnJheSkgeyAvLyBjb252ZXJ0cyBieXRlIGFycmF5cyB0byBzdHJpbmcgIFxyXG5cdFx0bGV0IGksIGosIGlubjtcclxuXHRcdGxldCBoZXggPSBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCJdO1xyXG5cdFx0bGV0IG91dCA9IFwiXCI7XHJcblxyXG5cdFx0Zm9yIChqID0gMDsgaiA8IGluYXJyYXkubGVuZ3RoOyArK2opIHtcclxuXHRcdFx0aW5uID0gaW5hcnJheVtqXSAmIDB4ZmY7XHJcblx0XHRcdGkgPSAoaW5uID4+PiA0KSAmIDB4MGY7XHJcblx0XHRcdG91dCArPSBoZXhbaV07XHJcblx0XHRcdGkgPSBpbm4gJiAweDBmO1xyXG5cdFx0XHRvdXQgKz0gaGV4W2ldO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG91dDtcclxuXHR9LFxyXG5cdHdyaXRlRGF0YTogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAobm9ORkMpIHtcclxuXHRcdFx0dG9hc3QoJ+ivt+ajgOafpeiuvuWkh+aYr+WQpuaUr+aMgeW5tuW8gOWQryBORkMg5Yqf6IO977yBJyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlXcml0ZURhdGEgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0cmVhZERhdGE6IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKG5vTkZDKSB7XHJcblx0XHRcdHRvYXN0KCfor7fmo4Dmn6Xorr7lpIfmmK/lkKbmlK/mjIHlubblvIDlkK8gTkZDIOWKn+iDve+8gScpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHQvLyDnm5HlkKzkuovku7bvvIzop6blj5HmnaHku7ZcclxuXHRcdHJlYWR5UmVhZCA9IHRydWU7XHJcblx0XHR0b2FzdCgn6K+35bCGTkZD5qCH562+6Z2g6L+R77yBJyk7XHJcblx0fSxcclxuXHRzZXRQd2REYXRhOiBmdW5jdGlvbigpIHtcclxuXHRcdGlmIChub05GQykge1xyXG5cdFx0XHR0b2FzdCgn6K+35qOA5p+l6K6+5aSH5piv5ZCm5pSv5oyB5bm25byA5ZCvIE5GQyDlip/og73vvIEnKTtTXHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlTZXRQd2QgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0ZGVsUHdkRGF0YTogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAobm9ORkMpIHtcclxuXHRcdFx0dG9hc3QoJ+ivt+ajgOafpeiuvuWkh+aYr+WQpuaUr+aMgeW5tuW8gOWQryBORkMg5Yqf6IO977yBJyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlEZWxQd2QgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0Z2V0TmZjU3RhdGU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKG5vTkZDKSB7XHJcblx0XHRcdHRvYXN0KCfor7fmo4Dmn6Xorr7lpIfmmK/lkKbmlK/mjIHlubblvIDlkK8gTkZDIOWKn+iDve+8gScpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHQvLyDnm5HlkKzkuovku7bvvIzop6blj5HmnaHku7ZcclxuXHRcdHJlYWR5R2V0TmZjU3RhdGUgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0d3JpdGVBbmRMb2NrOiBmdW5jdGlvbigpIHtcclxuXHRcdGlmIChub05GQykge1xyXG5cdFx0XHR0b2FzdCgn6K+35qOA5p+l6K6+5aSH5piv5ZCm5pSv5oyB5bm25byA5ZCvIE5GQyDlip/og73vvIEnKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Ly8g55uR5ZCs5LqL5Lu277yM6Kem5Y+R5p2h5Lu2XHJcblx0XHRyZWFkeVdyaXRlQW5kTG9jayA9IHRydWU7XHJcblx0XHR0b2FzdCgn6K+35bCGTkZD5qCH562+6Z2g6L+R77yBJyk7XHJcblx0fSxcclxuXHQvLyDovpPlhaXmlofmnKzmlLnlj5hcclxuXHRpbnB1dENoYW5hZ2U6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0Y29uc29sZS5sb2coXCLmraPlnKjnvJbovpHlhpnlhaXmlbDmja4uLi5cIiwgcmVzKVxyXG5cdFx0d3JpdGVVcmkgPSByZXNcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvYXN0KGNvbnRlbnQpIHtcclxuXHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdHRpdGxlOiBjb250ZW50LFxyXG5cdFx0aWNvbjogJ25vbmUnXHJcblx0fSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n");
- /***/ }),
- /* 55 */
- /*!***************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***!
- \***************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 56);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 70);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n");
- /***/ }),
- /* 56 */
- /*!**********************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
- \**********************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 57);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 57 */
- /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
- \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- try {
- components = {
- uniTransition:
- __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 58)
- .default,
- }
- } catch (e) {
- if (
- e.message.indexOf("Cannot find module") !== -1 &&
- e.message.indexOf(".vue") !== -1
- ) {
- console.error(e.message)
- console.error("1. 排查组件名称拼写是否正确")
- console.error(
- "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
- )
- console.error(
- "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
- )
- } else {
- throw e
- }
- }
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm._$s(0, "i", _vm.showPopup || _vm.onceRender)
- ? _c(
- "view",
- {
- directives: [
- {
- name: "show",
- rawName: "v-show",
- value: _vm._$s(0, "v-show", _vm.showPopup),
- expression: "_$s(0,'v-show',showPopup)",
- },
- ],
- staticClass: _vm._$s(0, "sc", "uni-popup"),
- class: _vm._$s(0, "c", [
- _vm.popupstyle,
- _vm.isDesktop ? "fixforpc-z-index" : "",
- ]),
- attrs: { _i: 0 },
- },
- [
- _c(
- "view",
- { attrs: { _i: 1 }, on: { touchstart: _vm.touchstart } },
- [
- _vm._$s(2, "i", _vm.maskShow)
- ? _c("uni-transition", {
- key: "1",
- attrs: {
- name: "mask",
- "mode-class": "fade",
- styles: _vm.maskClass,
- duration: _vm.duration,
- show: _vm.showTrans,
- _i: 2,
- },
- on: { click: _vm.onTap },
- })
- : _vm._e(),
- _c(
- "uni-transition",
- {
- key: "2",
- attrs: {
- "mode-class": _vm.ani,
- name: "content",
- styles: _vm.transClass,
- duration: _vm.duration,
- show: _vm.showTrans,
- "once-render": _vm.onceRender,
- _i: 3,
- },
- on: { click: _vm.onTap },
- },
- [
- _c(
- "view",
- {
- staticClass: _vm._$s(4, "sc", "uni-popup__wrapper"),
- class: _vm._$s(4, "c", [_vm.popupstyle]),
- style: _vm._$s(4, "s", { backgroundColor: _vm.bg }),
- attrs: { _i: 4 },
- on: { click: _vm.clear },
- },
- [_vm._t("default", null, { _i: 5 })],
- 2
- ),
- ]
- ),
- ],
- 1
- ),
- ]
- )
- : _vm._e()
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 58 */
- /*!******************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***!
- \******************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 59);\n/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 61);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-transition/components/uni-transition/uni-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MzY5ZjhjNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n");
- /***/ }),
- /* 59 */
- /*!*************************************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
- \*************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 60);
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["components"]; });
- /***/ }),
- /* 60 */
- /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
- \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! exports provided: render, staticRenderFns, recyclableRender, components */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
- var components
- var render = function () {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _vm._$s(0, "i", _vm.isShow || _vm.onceRender)
- ? _c(
- "view",
- {
- directives: [
- {
- name: "show",
- rawName: "v-show",
- value: _vm._$s(0, "v-show", _vm.isShow),
- expression: "_$s(0,'v-show',isShow)",
- },
- ],
- ref: "ani",
- class: _vm._$s(0, "c", _vm.customClass),
- style: _vm._$s(0, "s", _vm.transformStyles),
- attrs: {
- animation: _vm._$s(0, "a-animation", _vm.animationData),
- _i: 0,
- },
- on: { click: _vm.onClick },
- },
- [_vm._t("default", null, { _i: 1 })],
- 2
- )
- : _vm._e()
- }
- var recyclableRender = false
- var staticRenderFns = []
- render._withStripped = true
- /***/ }),
- /* 61 */
- /*!*******************************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
- \*******************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=script&lang=js& */ 62);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXNvQixDQUFnQiw0bkJBQUcsRUFBQyIsImZpbGUiOiI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n");
- /***/ }),
- /* 62 */
- /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
- \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 63));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 69);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n/**\n * Transition 过渡动画\n * @description 简单过渡动画组件\n * @tutorial https://ext.dcloud.net.cn/plugin?id=985\n * @property {Boolean} show = [false|true] 控制组件显示或隐藏\n * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型\n * @value fade 渐隐渐出过渡\n * @value slide-top 由上至下过渡\n * @value slide-right 由右至左过渡\n * @value slide-bottom 由下至上过渡\n * @value slide-left 由左至右过渡\n * @value zoom-in 由小到大过渡\n * @value zoom-out 由大到小过渡\n * @property {Number} duration 过渡动画持续时间\n * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`\n */\nvar _default2 = {\n name: 'uniTransition',\n emits: ['click', 'change'],\n props: {\n show: {\n type: Boolean,\n default: false\n },\n modeClass: {\n type: [Array, String],\n default: function _default() {\n return 'fade';\n }\n },\n duration: {\n type: Number,\n default: 300\n },\n styles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n customClass: {\n type: String,\n default: ''\n },\n onceRender: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n isShow: false,\n transform: '',\n opacity: 1,\n animationData: {},\n durationTime: 300,\n config: {}\n };\n },\n watch: {\n show: {\n handler: function handler(newVal) {\n if (newVal) {\n this.open();\n } else {\n // 避免上来就执行 close,导致动画错乱\n if (this.isShow) {\n this.close();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n // 生成样式数据\n stylesObject: function stylesObject() {\n var styles = _objectSpread(_objectSpread({}, this.styles), {}, {\n 'transition-duration': this.duration / 1000 + 's'\n });\n var transform = '';\n for (var i in styles) {\n var line = this.toLine(i);\n transform += line + ':' + styles[i] + ';';\n }\n return transform;\n },\n // 初始化动画条件\n transformStyles: function transformStyles() {\n return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject;\n }\n },\n created: function created() {\n // 动画默认配置\n this.config = {\n duration: this.duration,\n timingFunction: 'ease',\n transformOrigin: '50% 50%',\n delay: 0\n };\n this.durationTime = this.duration;\n },\n methods: {\n /**\n * ref 触发 初始化动画\n */\n init: function init() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (obj.duration) {\n this.durationTime = obj.duration;\n }\n this.animation = (0, _createAnimation.createAnimation)(Object.assign(this.config, obj), this);\n },\n /**\n * 点击组件触发回调\n */\n onClick: function onClick() {\n this.$emit('click', {\n detail: this.isShow\n });\n },\n /**\n * ref 触发 动画分组\n * @param {Object} obj\n */\n step: function step(obj) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.animation) return;\n for (var i in obj) {\n try {\n if ((0, _typeof2.default)(obj[i]) === 'object') {\n var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, (0, _toConsumableArray2.default)(obj[i]));\n } else {\n this.animation[i](obj[i]);\n }\n } catch (e) {\n __f__(\"error\", \"\\u65B9\\u6CD5 \".concat(i, \" \\u4E0D\\u5B58\\u5728\"), \" at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:143\");\n }\n }\n this.animation.step(config);\n return this;\n },\n /**\n * ref 触发 执行动画\n */\n run: function run(fn) {\n if (!this.animation) return;\n this.animation.run(fn);\n },\n // 开始过度动画\n open: function open() {\n var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;\n var _this$styleInit = this.styleInit(false),\n opacity = _this$styleInit.opacity,\n transform = _this$styleInit.transform;\n if (typeof opacity !== 'undefined') {\n this.opacity = opacity;\n }\n this.transform = transform;\n // 确保动态样式已经生效后,执行动画,如果不加 nextTick ,会导致 wx 动画执行异常\n this.$nextTick(function () {\n // TODO 定时器保证动画完全执行,目前有些问题,后面会取消定时器\n _this.timer = setTimeout(function () {\n _this.animation = (0, _createAnimation.createAnimation)(_this.config, _this);\n _this.tranfromInit(false).step();\n _this.animation.run();\n _this.$emit('change', {\n detail: _this.isShow\n });\n }, 20);\n });\n },\n // 关闭过度动画\n close: function close(type) {\n var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).step().run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;\n var _this2$styleInit = _this2.styleInit(false),\n opacity = _this2$styleInit.opacity,\n transform = _this2$styleInit.transform;\n _this2.opacity = opacity || 1;\n _this2.transform = transform;\n _this2.$emit('change', {\n detail: _this2.isShow\n });\n });\n },\n // 处理动画开始前的默认样式\n styleInit: function styleInit(type) {\n var _this3 = this;\n var styles = {\n transform: ''\n };\n var buildStyle = function buildStyle(type, mode) {\n if (mode === 'fade') {\n styles.opacity = _this3.animationType(type)[mode];\n } else {\n styles.transform += _this3.animationType(type)[mode] + ' ';\n }\n };\n if (typeof this.modeClass === 'string') {\n buildStyle(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildStyle(type, mode);\n });\n }\n return styles;\n },\n // 处理内置组合动画\n tranfromInit: function tranfromInit(type) {\n var _this4 = this;\n var buildTranfrom = function buildTranfrom(type, mode) {\n var aniNum = null;\n if (mode === 'fade') {\n aniNum = type ? 0 : 1;\n } else {\n aniNum = type ? '-100%' : '0';\n if (mode === 'zoom-in') {\n aniNum = type ? 0.8 : 1;\n }\n if (mode === 'zoom-out') {\n aniNum = type ? 1.2 : 1;\n }\n if (mode === 'slide-right') {\n aniNum = type ? '100%' : '0';\n }\n if (mode === 'slide-bottom') {\n aniNum = type ? '100%' : '0';\n }\n }\n _this4.animation[_this4.animationMode()[mode]](aniNum);\n };\n if (typeof this.modeClass === 'string') {\n buildTranfrom(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildTranfrom(type, mode);\n });\n }\n return this.animation;\n },\n animationType: function animationType(type) {\n return {\n fade: type ? 1 : 0,\n 'slide-top': \"translateY(\".concat(type ? '0' : '-100%', \")\"),\n 'slide-right': \"translateX(\".concat(type ? '0' : '100%', \")\"),\n 'slide-bottom': \"translateY(\".concat(type ? '0' : '100%', \")\"),\n 'slide-left': \"translateX(\".concat(type ? '0' : '-100%', \")\"),\n 'zoom-in': \"scaleX(\".concat(type ? 1 : 0.8, \") scaleY(\").concat(type ? 1 : 0.8, \")\"),\n 'zoom-out': \"scaleX(\".concat(type ? 1 : 1.2, \") scaleY(\").concat(type ? 1 : 1.2, \")\")\n };\n },\n // 内置动画类型与实际动画对应字典\n animationMode: function animationMode() {\n return {\n fade: 'opacity',\n 'slide-top': 'translateY',\n 'slide-right': 'translateX',\n 'slide-bottom': 'translateY',\n 'slide-left': 'translateX',\n 'zoom-in': 'scale',\n 'zoom-out': 'scale'\n };\n },\n // 驼峰转中横线\n toLine: function toLine(name) {\n return name.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJzaG93IiwidHlwZSIsImRlZmF1bHQiLCJtb2RlQ2xhc3MiLCJkdXJhdGlvbiIsInN0eWxlcyIsImN1c3RvbUNsYXNzIiwib25jZVJlbmRlciIsImRhdGEiLCJpc1Nob3ciLCJ0cmFuc2Zvcm0iLCJvcGFjaXR5IiwiYW5pbWF0aW9uRGF0YSIsImR1cmF0aW9uVGltZSIsImNvbmZpZyIsIndhdGNoIiwiaGFuZGxlciIsImltbWVkaWF0ZSIsImNvbXB1dGVkIiwic3R5bGVzT2JqZWN0IiwidHJhbnNmb3JtU3R5bGVzIiwiY3JlYXRlZCIsInRpbWluZ0Z1bmN0aW9uIiwidHJhbnNmb3JtT3JpZ2luIiwiZGVsYXkiLCJtZXRob2RzIiwiaW5pdCIsIm9uQ2xpY2siLCJkZXRhaWwiLCJzdGVwIiwicnVuIiwib3BlbiIsImNsZWFyVGltZW91dCIsImNsb3NlIiwic3R5bGVJbml0IiwiYnVpbGRTdHlsZSIsInRyYW5mcm9tSW5pdCIsImFuaU51bSIsImJ1aWxkVHJhbmZyb20iLCJhbmltYXRpb25UeXBlIiwiZmFkZSIsImFuaW1hdGlvbk1vZGUiLCJ0b0xpbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFLQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWZBLGdCQWdCQTtFQUNBQTtFQUNBQztFQUNBQztJQUNBQztNQUNBQztNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUk7TUFDQUw7TUFDQUM7SUFDQTtJQUNBSztNQUNBTjtNQUNBQztJQUNBO0VBQ0E7RUFDQU07SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQWY7TUFDQWdCO1FBQ0E7VUFDQTtRQUNBO1VBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0EsNkNBQ0E7UUFDQTtNQUFBLEVBQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQVQ7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBVTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7TUFDQWpCO01BQ0FrQjtNQUNBQztNQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO1FBQ0FDO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7TUFDQTtNQUNBO1FBQ0E7VUFDQTtZQUFBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFBQXJCO1FBQUFEO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0FrQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUs7TUFBQTtNQUNBO01BQ0Esd0JBQ0FKLE9BQ0FDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFBQW5CO1VBQUFEO1FBQ0E7UUFDQTtRQUNBO1VBQ0FrQjtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FNO01BQUE7TUFDQTtRQUNBeEI7TUFDQTtNQUNBO1FBQ0E7VUFDQUw7UUFDQTtVQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBOEI7TUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7VUFDQUE7VUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7VUFDQTtVQUNBO1lBQ0FBO1VBQ0E7VUFDQTtZQUNBQTtVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUVBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBQztRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0FEO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FFO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSw0QiIsImZpbGUiOiI2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXcgdi1pZj1cImlzU2hvd3x8b25jZVJlbmRlclwiIHYtc2hvdz1cImlzU2hvd1wiIHJlZj1cImFuaVwiIDphbmltYXRpb249XCJhbmltYXRpb25EYXRhXCIgOmNsYXNzPVwiY3VzdG9tQ2xhc3NcIiA6c3R5bGU9XCJ0cmFuc2Zvcm1TdHlsZXNcIiBAY2xpY2s9XCJvbkNsaWNrXCI+PHNsb3Q+PC9zbG90Pjwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBjcmVhdGVBbmltYXRpb24gfSBmcm9tICcuL2NyZWF0ZUFuaW1hdGlvbidcblxuLyoqXG4gKiBUcmFuc2l0aW9uIOi/h+a4oeWKqOeUu1xuICogQGRlc2NyaXB0aW9uIOeugOWNlei/h+a4oeWKqOeUu+e7hOS7tlxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTk4NVxuICogQHByb3BlcnR5IHtCb29sZWFufSBzaG93ID0gW2ZhbHNlfHRydWVdIOaOp+WItue7hOS7tuaYvuekuuaIlumakOiXj1xuICogQHByb3BlcnR5IHtBcnJheXxTdHJpbmd9IG1vZGVDbGFzcyA9IFtmYWRlfHNsaWRlLXRvcHxzbGlkZS1yaWdodHxzbGlkZS1ib3R0b218c2xpZGUtbGVmdHx6b29tLWlufHpvb20tb3V0XSDov4fmuKHliqjnlLvnsbvlnotcbiAqICBAdmFsdWUgZmFkZSDmuJDpmpDmuJDlh7rov4fmuKFcbiAqICBAdmFsdWUgc2xpZGUtdG9wIOeUseS4iuiHs+S4i+i/h+a4oVxuICogIEB2YWx1ZSBzbGlkZS1yaWdodCDnlLHlj7Poh7Plt6bov4fmuKFcbiAqICBAdmFsdWUgc2xpZGUtYm90dG9tIOeUseS4i+iHs+S4iui/h+a4oVxuICogIEB2YWx1ZSBzbGlkZS1sZWZ0IOeUseW3puiHs+WPs+i/h+a4oVxuICogIEB2YWx1ZSB6b29tLWluIOeUseWwj+WIsOWkp+i/h+a4oVxuICogIEB2YWx1ZSB6b29tLW91dCDnlLHlpKfliLDlsI/ov4fmuKFcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBkdXJhdGlvbiDov4fmuKHliqjnlLvmjIHnu63ml7bpl7RcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBzdHlsZXMg57uE5Lu25qC35byP77yM5ZCMIGNzcyDmoLflvI/vvIzms6jmhI/luKbigJkt4oCY6L+e5o6l56ym55qE5bGe5oCn6ZyA6KaB5L2/55So5bCP6am85bOw5YaZ5rOV5aaC77yaYGJhY2tncm91bmRDb2xvcjpyZWRgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ3VuaVRyYW5zaXRpb24nLFxuXHRlbWl0czpbJ2NsaWNrJywnY2hhbmdlJ10sXG5cdHByb3BzOiB7XG5cdFx0c2hvdzoge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlXG5cdFx0fSxcblx0XHRtb2RlQ2xhc3M6IHtcblx0XHRcdHR5cGU6IFtBcnJheSwgU3RyaW5nXSxcblx0XHRcdGRlZmF1bHQoKSB7XG5cdFx0XHRcdHJldHVybiAnZmFkZSdcblx0XHRcdH1cblx0XHR9LFxuXHRcdGR1cmF0aW9uOiB7XG5cdFx0XHR0eXBlOiBOdW1iZXIsXG5cdFx0XHRkZWZhdWx0OiAzMDBcblx0XHR9LFxuXHRcdHN0eWxlczoge1xuXHRcdFx0dHlwZTogT2JqZWN0LFxuXHRcdFx0ZGVmYXVsdCgpIHtcblx0XHRcdFx0cmV0dXJuIHt9XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjdXN0b21DbGFzczp7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJ1xuXHRcdH0sXG5cdFx0b25jZVJlbmRlcjp7XG5cdFx0XHR0eXBlOkJvb2xlYW4sXG5cdFx0XHRkZWZhdWx0OmZhbHNlXG5cdFx0fSxcblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNTaG93OiBmYWxzZSxcblx0XHRcdHRyYW5zZm9ybTogJycsXG5cdFx0XHRvcGFjaXR5OiAxLFxuXHRcdFx0YW5pbWF0aW9uRGF0YToge30sXG5cdFx0XHRkdXJhdGlvblRpbWU6IDMwMCxcblx0XHRcdGNvbmZpZzoge31cblx0XHR9XG5cdH0sXG5cdHdhdGNoOiB7XG5cdFx0c2hvdzoge1xuXHRcdFx0aGFuZGxlcihuZXdWYWwpIHtcblx0XHRcdFx0aWYgKG5ld1ZhbCkge1xuXHRcdFx0XHRcdHRoaXMub3BlbigpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8g6YG/5YWN5LiK5p2l5bCx5omn6KGMIGNsb3NlLOWvvOiHtOWKqOeUu+mUmeS5sVxuXHRcdFx0XHRcdGlmICh0aGlzLmlzU2hvdykge1xuXHRcdFx0XHRcdFx0dGhpcy5jbG9zZSgpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXG5cdFx0fVxuXHR9LFxuXHRjb21wdXRlZDoge1xuXHRcdC8vIOeUn+aIkOagt+W8j+aVsOaNrlxuXHRcdHN0eWxlc09iamVjdCgpIHtcblx0XHRcdGxldCBzdHlsZXMgPSB7XG5cdFx0XHRcdC4uLnRoaXMuc3R5bGVzLFxuXHRcdFx0XHQndHJhbnNpdGlvbi1kdXJhdGlvbic6IHRoaXMuZHVyYXRpb24gLyAxMDAwICsgJ3MnXG5cdFx0XHR9XG5cdFx0XHRsZXQgdHJhbnNmb3JtID0gJydcblx0XHRcdGZvciAobGV0IGkgaW4gc3R5bGVzKSB7XG5cdFx0XHRcdGxldCBsaW5lID0gdGhpcy50b0xpbmUoaSlcblx0XHRcdFx0dHJhbnNmb3JtICs9IGxpbmUgKyAnOicgKyBzdHlsZXNbaV0gKyAnOydcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cmFuc2Zvcm1cblx0XHR9LFxuXHRcdC8vIOWIneWni+WMluWKqOeUu+adoeS7tlxuXHRcdHRyYW5zZm9ybVN0eWxlcygpIHtcblx0XHRcdHJldHVybiAndHJhbnNmb3JtOicgKyB0aGlzLnRyYW5zZm9ybSArICc7JyArICdvcGFjaXR5OicgKyB0aGlzLm9wYWNpdHkgKyAnOycgKyB0aGlzLnN0eWxlc09iamVjdFxuXHRcdH1cblx0fSxcblx0Y3JlYXRlZCgpIHtcblx0XHQvLyDliqjnlLvpu5jorqTphY3nva5cblx0XHR0aGlzLmNvbmZpZyA9IHtcblx0XHRcdGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuXHRcdFx0dGltaW5nRnVuY3Rpb246ICdlYXNlJyxcblx0XHRcdHRyYW5zZm9ybU9yaWdpbjogJzUwJSA1MCUnLFxuXHRcdFx0ZGVsYXk6IDBcblx0XHR9XG5cdFx0dGhpcy5kdXJhdGlvblRpbWUgPSB0aGlzLmR1cmF0aW9uXG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHQvKipcblx0XHQgKiAgcmVmIOinpuWPkSDliJ3lp4vljJbliqjnlLtcblx0XHQgKi9cblx0XHRpbml0KG9iaiA9IHt9KSB7XG5cdFx0XHRpZiAob2JqLmR1cmF0aW9uKSB7XG5cdFx0XHRcdHRoaXMuZHVyYXRpb25UaW1lID0gb2JqLmR1cmF0aW9uXG5cdFx0XHR9XG5cdFx0XHR0aGlzLmFuaW1hdGlvbiA9IGNyZWF0ZUFuaW1hdGlvbihPYmplY3QuYXNzaWduKHRoaXMuY29uZmlnLCBvYmopLHRoaXMpXG5cdFx0fSxcblx0XHQvKipcblx0XHQgKiDngrnlh7vnu4Tku7bop6blj5Hlm57osINcblx0XHQgKi9cblx0XHRvbkNsaWNrKCkge1xuXHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snLCB7XG5cdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvKipcblx0XHQgKiByZWYg6Kem5Y+RIOWKqOeUu+WIhue7hFxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcblx0XHQgKi9cblx0XHRzdGVwKG9iaiwgY29uZmlnID0ge30pIHtcblx0XHRcdGlmICghdGhpcy5hbmltYXRpb24pIHJldHVyblxuXHRcdFx0Zm9yIChsZXQgaSBpbiBvYmopIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRpZih0eXBlb2Ygb2JqW2ldID09PSAnb2JqZWN0Jyl7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXSguLi5vYmpbaV0pXG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXShvYmpbaV0pXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihg5pa55rOVICR7aX0g5LiN5a2Y5ZyoYClcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5hbmltYXRpb24uc3RlcChjb25maWcpXG5cdFx0XHRyZXR1cm4gdGhpc1xuXHRcdH0sXG5cdFx0LyoqXG5cdFx0ICogIHJlZiDop6blj5Eg5omn6KGM5Yqo55S7XG5cdFx0ICovXG5cdFx0cnVuKGZuKSB7XG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cblx0XHRcdHRoaXMuYW5pbWF0aW9uLnJ1bihmbilcblx0XHR9LFxuXHRcdC8vIOW8gOWni+i/h+W6puWKqOeUu1xuXHRcdG9wZW4oKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lcilcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gJydcblx0XHRcdHRoaXMuaXNTaG93ID0gdHJ1ZVxuXHRcdFx0bGV0IHsgb3BhY2l0eSwgdHJhbnNmb3JtIH0gPSB0aGlzLnN0eWxlSW5pdChmYWxzZSlcblx0XHRcdGlmICh0eXBlb2Ygb3BhY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eVxuXHRcdFx0fVxuXHRcdFx0dGhpcy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cblx0XHRcdC8vIOehruS/neWKqOaAgeagt+W8j+W3sue7j+eUn+aViOWQju+8jOaJp+ihjOWKqOeUu++8jOWmguaenOS4jeWKoCBuZXh0VGljayDvvIzkvJrlr7zoh7Qgd3gg5Yqo55S75omn6KGM5byC5bi4XG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XG5cdFx0XHRcdC8vIFRPRE8g5a6a5pe25Zmo5L+d6K+B5Yqo55S75a6M5YWo5omn6KGM77yM55uu5YmN5pyJ5Lqb6Zeu6aKY77yM5ZCO6Z2i5Lya5Y+W5raI5a6a5pe25ZmoXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbiA9IGNyZWF0ZUFuaW1hdGlvbih0aGlzLmNvbmZpZywgdGhpcylcblx0XHRcdFx0XHR0aGlzLnRyYW5mcm9tSW5pdChmYWxzZSkuc3RlcCgpXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKClcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSwgMjApXG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly8g5YWz6Zet6L+H5bqm5Yqo55S7XG5cdFx0Y2xvc2UodHlwZSkge1xuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXG5cdFx0XHR0aGlzLnRyYW5mcm9tSW5pdCh0cnVlKVxuXHRcdFx0XHQuc3RlcCgpXG5cdFx0XHRcdC5ydW4oKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbkRhdGEgPSBudWxsXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBudWxsXG5cdFx0XHRcdFx0bGV0IHsgb3BhY2l0eSwgdHJhbnNmb3JtIH0gPSB0aGlzLnN0eWxlSW5pdChmYWxzZSlcblx0XHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5IHx8IDFcblx0XHRcdFx0XHR0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly8g5aSE55CG5Yqo55S75byA5aeL5YmN55qE6buY6K6k5qC35byPXG5cdFx0c3R5bGVJbml0KHR5cGUpIHtcblx0XHRcdGxldCBzdHlsZXMgPSB7XG5cdFx0XHRcdHRyYW5zZm9ybTogJydcblx0XHRcdH1cblx0XHRcdGxldCBidWlsZFN0eWxlID0gKHR5cGUsIG1vZGUpID0+IHtcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xuXHRcdFx0XHRcdHN0eWxlcy5vcGFjaXR5ID0gdGhpcy5hbmltYXRpb25UeXBlKHR5cGUpW21vZGVdXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3R5bGVzLnRyYW5zZm9ybSArPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV0gKyAnICdcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0YnVpbGRTdHlsZSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XG5cdFx0XHRcdFx0YnVpbGRTdHlsZSh0eXBlLCBtb2RlKVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHN0eWxlc1xuXHRcdH0sXG5cdFx0Ly8g5aSE55CG5YaF572u57uE5ZCI5Yqo55S7XG5cdFx0dHJhbmZyb21Jbml0KHR5cGUpIHtcblx0XHRcdGxldCBidWlsZFRyYW5mcm9tID0gKHR5cGUsIG1vZGUpID0+IHtcblx0XHRcdFx0bGV0IGFuaU51bSA9IG51bGxcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAwIDogMVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAnLTEwMCUnIDogJzAnXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLWluJykge1xuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDAuOCA6IDFcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLW91dCcpIHtcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAxLjIgOiAxXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtcmlnaHQnKSB7XG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtYm90dG9tJykge1xuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICcxMDAlJyA6ICcwJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvblt0aGlzLmFuaW1hdGlvbk1vZGUoKVttb2RlXV0oYW5pTnVtKVxuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XG5cdFx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCBtb2RlKVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGhpcy5hbmltYXRpb25cblx0XHR9LFxuXHRcdGFuaW1hdGlvblR5cGUodHlwZSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZmFkZTogdHlwZSA/IDEgOiAwLFxuXHRcdFx0XHQnc2xpZGUtdG9wJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcblx0XHRcdFx0J3NsaWRlLXJpZ2h0JzogYHRyYW5zbGF0ZVgoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxuXHRcdFx0XHQnc2xpZGUtbGVmdCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICctMTAwJSd9KWAsXG5cdFx0XHRcdCd6b29tLWluJzogYHNjYWxlWCgke3R5cGUgPyAxIDogMC44fSkgc2NhbGVZKCR7dHlwZSA/IDEgOiAwLjh9KWAsXG5cdFx0XHRcdCd6b29tLW91dCc6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDEuMn0pIHNjYWxlWSgke3R5cGUgPyAxIDogMS4yfSlgXG5cdFx0XHR9XG5cdFx0fSxcblx0XHQvLyDlhoXnva7liqjnlLvnsbvlnovkuI7lrp7pmYXliqjnlLvlr7nlupTlrZflhbhcblx0XHRhbmltYXRpb25Nb2RlKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZmFkZTogJ29wYWNpdHknLFxuXHRcdFx0XHQnc2xpZGUtdG9wJzogJ3RyYW5zbGF0ZVknLFxuXHRcdFx0XHQnc2xpZGUtcmlnaHQnOiAndHJhbnNsYXRlWCcsXG5cdFx0XHRcdCdzbGlkZS1ib3R0b20nOiAndHJhbnNsYXRlWScsXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogJ3RyYW5zbGF0ZVgnLFxuXHRcdFx0XHQnem9vbS1pbic6ICdzY2FsZScsXG5cdFx0XHRcdCd6b29tLW91dCc6ICdzY2FsZSdcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8vIOmpvOWzsOi9rOS4reaoque6v1xuXHRcdHRvTGluZShuYW1lKSB7XG5cdFx0XHRyZXR1cm4gbmFtZS5yZXBsYWNlKC8oW0EtWl0pL2csICctJDEnKS50b0xvd2VyQ2FzZSgpXG5cdFx0fVxuXHR9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlPjwvc3R5bGU+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n");
- /***/ }),
- /* 63 */
- /*!******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 64);
- var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 66);
- var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 67);
- var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 68);
- function _toConsumableArray(arr) {
- return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
- }
- module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 64 */
- /*!******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 65);
- function _arrayWithoutHoles(arr) {
- if (Array.isArray(arr)) return arrayLikeToArray(arr);
- }
- module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 65 */
- /*!*****************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
- \*****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
- return arr2;
- }
- module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 66 */
- /*!****************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!
- \****************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _iterableToArray(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
- }
- module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 67 */
- /*!***************************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
- \***************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 65);
- function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
- }
- module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 68 */
- /*!******************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
- \******************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports) {
- function _nonIterableSpread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
- /***/ }),
- /* 69 */
- /*!******************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***!
- \******************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAnimation = createAnimation;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 52));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 53));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar MPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {\n (0, _classCallCheck2.default)(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n }\n (0, _createClass2.default)(MPAnimation, [{\n key: \"_nvuePushAnimates\",\n value: function _nvuePushAnimates(type, args) {\n var aniObj = this.currentStepAnimates[this.next];\n var styles = {};\n if (!aniObj) {\n styles = {\n styles: {},\n config: {}\n };\n } else {\n styles = aniObj;\n }\n if (animateTypes1.includes(type)) {\n if (!styles.styles.transform) {\n styles.styles.transform = '';\n }\n var unit = '';\n if (type === 'rotate') {\n unit = 'deg';\n }\n styles.styles.transform += \"\".concat(type, \"(\").concat(args + unit, \") \");\n } else {\n styles.styles[type] = \"\".concat(args);\n }\n this.currentStepAnimates[this.next] = styles;\n }\n }, {\n key: \"_animateRun\",\n value: function _animateRun() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ref = this.$.$refs['ani'].ref;\n if (!ref) return;\n return new Promise(function (resolve, reject) {\n nvueAnimation.transition(ref, _objectSpread({\n styles: styles\n }, config), function (res) {\n resolve();\n });\n });\n }\n }, {\n key: \"_nvueNextAnimate\",\n value: function _nvueNextAnimate(animates) {\n var _this2 = this;\n var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {\n var styles = obj.styles,\n config = obj.config;\n this._animateRun(styles, config).then(function () {\n step += 1;\n _this2._nvueNextAnimate(animates, step, fn);\n });\n } else {\n this.currentStepAnimates = {};\n typeof fn === 'function' && fn();\n this.isEnd = true;\n }\n }\n }, {\n key: \"step\",\n value: function step() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.animation.step(config);\n return this;\n }\n }, {\n key: \"run\",\n value: function run(fn) {\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n }\n }]);\n return MPAnimation;\n}();\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {\n var _this$animation;\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n return this;\n };\n});\nfunction createAnimation(option, _this) {\n if (!_this) return;\n clearTimeout(_this.timer);\n return new MPAnimation(option, _this);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBSU1BLFdBQVc7RUFDaEIscUJBQVlDLE9BQU8sRUFBRUMsS0FBSyxFQUFFO0lBQUE7SUFDM0IsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87SUFDdEIsSUFBSSxDQUFDRSxTQUFTLEdBQUdDLEdBQUcsQ0FBQ0MsZUFBZSxDQUFDSixPQUFPLENBQUM7SUFDN0MsSUFBSSxDQUFDSyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUcsQ0FBQztJQUNiLElBQUksQ0FBQ0MsQ0FBQyxHQUFHTixLQUFLO0VBRWY7RUFBQztJQUFBO0lBQUEsT0FFRCwyQkFBa0JPLElBQUksRUFBRUMsSUFBSSxFQUFFO01BQzdCLElBQUlDLE1BQU0sR0FBRyxJQUFJLENBQUNMLG1CQUFtQixDQUFDLElBQUksQ0FBQ0MsSUFBSSxDQUFDO01BQ2hELElBQUlLLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDZixJQUFJLENBQUNELE1BQU0sRUFBRTtRQUNaQyxNQUFNLEdBQUc7VUFDUkEsTUFBTSxFQUFFLENBQUMsQ0FBQztVQUNWQyxNQUFNLEVBQUUsQ0FBQztRQUNWLENBQUM7TUFDRixDQUFDLE1BQU07UUFDTkQsTUFBTSxHQUFHRCxNQUFNO01BQ2hCO01BQ0EsSUFBSUcsYUFBYSxDQUFDQyxRQUFRLENBQUNOLElBQUksQ0FBQyxFQUFFO1FBQ2pDLElBQUksQ0FBQ0csTUFBTSxDQUFDQSxNQUFNLENBQUNJLFNBQVMsRUFBRTtVQUM3QkosTUFBTSxDQUFDQSxNQUFNLENBQUNJLFNBQVMsR0FBRyxFQUFFO1FBQzdCO1FBQ0EsSUFBSUMsSUFBSSxHQUFHLEVBQUU7UUFDYixJQUFHUixJQUFJLEtBQUssUUFBUSxFQUFDO1VBQ3BCUSxJQUFJLEdBQUcsS0FBSztRQUNiO1FBQ0FMLE1BQU0sQ0FBQ0EsTUFBTSxDQUFDSSxTQUFTLGNBQU9QLElBQUksY0FBSUMsSUFBSSxHQUFDTyxJQUFJLE9BQUk7TUFDcEQsQ0FBQyxNQUFNO1FBQ05MLE1BQU0sQ0FBQ0EsTUFBTSxDQUFDSCxJQUFJLENBQUMsYUFBTUMsSUFBSSxDQUFFO01BQ2hDO01BQ0EsSUFBSSxDQUFDSixtQkFBbUIsQ0FBQyxJQUFJLENBQUNDLElBQUksQ0FBQyxHQUFHSyxNQUFNO0lBQzdDO0VBQUM7SUFBQTtJQUFBLE9BQ0QsdUJBQXNDO01BQUEsSUFBMUJBLE1BQU0sdUVBQUcsQ0FBQyxDQUFDO01BQUEsSUFBRUMsTUFBTSx1RUFBRyxDQUFDLENBQUM7TUFDbkMsSUFBSUssR0FBRyxHQUFHLElBQUksQ0FBQ1YsQ0FBQyxDQUFDVyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUNELEdBQUc7TUFDakMsSUFBSSxDQUFDQSxHQUFHLEVBQUU7TUFDVixPQUFPLElBQUlFLE9BQU8sQ0FBQyxVQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBSztRQUN2Q0MsYUFBYSxDQUFDQyxVQUFVLENBQUNOLEdBQUc7VUFDM0JOLE1BQU0sRUFBTkE7UUFBTSxHQUNIQyxNQUFNLEdBQ1AsVUFBQVksR0FBRyxFQUFJO1VBQ1RKLE9BQU8sRUFBRTtRQUNWLENBQUMsQ0FBQztNQUNILENBQUMsQ0FBQztJQUNIO0VBQUM7SUFBQTtJQUFBLE9BRUQsMEJBQWlCSyxRQUFRLEVBQWdCO01BQUE7TUFBQSxJQUFkQyxJQUFJLHVFQUFHLENBQUM7TUFBQSxJQUFFQyxFQUFFO01BQ3RDLElBQUlDLEdBQUcsR0FBR0gsUUFBUSxDQUFDQyxJQUFJLENBQUM7TUFDeEIsSUFBSUUsR0FBRyxFQUFFO1FBQ1IsSUFDQ2pCLE1BQU0sR0FFSGlCLEdBQUcsQ0FGTmpCLE1BQU07VUFDTkMsTUFBTSxHQUNIZ0IsR0FBRyxDQUROaEIsTUFBTTtRQUVQLElBQUksQ0FBQ2lCLFdBQVcsQ0FBQ2xCLE1BQU0sRUFBRUMsTUFBTSxDQUFDLENBQUNrQixJQUFJLENBQUMsWUFBTTtVQUMzQ0osSUFBSSxJQUFJLENBQUM7VUFDVCxNQUFJLENBQUNLLGdCQUFnQixDQUFDTixRQUFRLEVBQUVDLElBQUksRUFBRUMsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQztNQUNILENBQUMsTUFBTTtRQUNOLElBQUksQ0FBQ3RCLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPc0IsRUFBRSxLQUFLLFVBQVUsSUFBSUEsRUFBRSxFQUFFO1FBQ2hDLElBQUksQ0FBQ0ssS0FBSyxHQUFHLElBQUk7TUFDbEI7SUFDRDtFQUFDO0lBQUE7SUFBQSxPQUVELGdCQUFrQjtNQUFBLElBQWJwQixNQUFNLHVFQUFHLENBQUMsQ0FBQztNQUVmLElBQUksQ0FBQ1YsU0FBUyxDQUFDd0IsSUFBSSxDQUFDZCxNQUFNLENBQUM7TUFPM0IsT0FBTyxJQUFJO0lBQ1o7RUFBQztJQUFBO0lBQUEsT0FFRCxhQUFJZSxFQUFFLEVBQUU7TUFFUCxJQUFJLENBQUNwQixDQUFDLENBQUMwQixhQUFhLEdBQUcsSUFBSSxDQUFDL0IsU0FBUyxDQUFDZ0MsTUFBTSxFQUFFO01BQzlDLElBQUksQ0FBQzNCLENBQUMsQ0FBQzRCLEtBQUssR0FBR0MsVUFBVSxDQUFDLFlBQU07UUFDL0IsT0FBT1QsRUFBRSxLQUFLLFVBQVUsSUFBSUEsRUFBRSxFQUFFO01BQ2pDLENBQUMsRUFBRSxJQUFJLENBQUNwQixDQUFDLENBQUM4QixZQUFZLENBQUM7SUFTeEI7RUFBQztFQUFBO0FBQUE7QUFJRixJQUFNeEIsYUFBYSxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3JILFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFDOUcsWUFBWSxDQUNaO0FBQ0QsSUFBTXlCLGFBQWEsR0FBRyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztBQUNwRCxJQUFNQyxhQUFhLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztBQUMzRTFCLGFBQWEsQ0FBQzJCLE1BQU0sQ0FBQ0YsYUFBYSxFQUFFQyxhQUFhLENBQUMsQ0FBQ0UsT0FBTyxDQUFDLFVBQUFqQyxJQUFJLEVBQUk7RUFDbEVULFdBQVcsQ0FBQzJDLFNBQVMsQ0FBQ2xDLElBQUksQ0FBQyxHQUFHLFlBQWtCO0lBQUE7SUFFL0MsdUJBQUksQ0FBQ04sU0FBUyxFQUFDTSxJQUFJLENBQUMsa0NBQVM7SUFLN0IsT0FBTyxJQUFJO0VBQ1osQ0FBQztBQUNGLENBQUMsQ0FBQztBQUVLLFNBQVNKLGVBQWUsQ0FBQ3VDLE1BQU0sRUFBRTFDLEtBQUssRUFBRTtFQUM5QyxJQUFHLENBQUNBLEtBQUssRUFBRTtFQUNYMkMsWUFBWSxDQUFDM0MsS0FBSyxDQUFDa0MsS0FBSyxDQUFDO0VBQ3pCLE9BQU8sSUFBSXBDLFdBQVcsQ0FBQzRDLE1BQU0sRUFBRTFDLEtBQUssQ0FBQztBQUN0QyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///69\n");
- /***/ }),
- /* 70 */
- /*!****************************************************************************************************************************!*\
- !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
- \****************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 71);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlvQixDQUFnQix1bkJBQUcsRUFBQyIsImZpbGUiOiI3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///70\n");
- /***/ }),
- /* 71 */
- /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
- \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
- /*! no static exports found */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * PopUp 弹出层\n * @description 弹出层组件,为了解决遮罩弹层的问题\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式\n * \t@value top 顶部弹出\n * \t@value center 中间弹出\n * \t@value bottom 底部弹出\n * \t@value left\t\t左侧弹出\n * \t@value right 右侧弹出\n * \t@value message 消息提示\n * \t@value dialog 对话框\n * \t@value share 底部分享示例\n * @property {Boolean} animation = [true|false] 是否开启动画\n * @property {Boolean} maskClick = [true|false] 蒙版点击是否关闭弹窗(废弃)\n * @property {Boolean} isMaskClick = [true|false] 蒙版点击是否关闭弹窗\n * @property {String} backgroundColor 主窗口背景色\n * @property {String} maskBackgroundColor 蒙版颜色\n * @property {Boolean} safeArea\t\t 是否适配底部安全区\n * @event {Function} change 打开关闭弹窗触发,e={show: false}\n * @event {Function} maskClick 点击遮罩触发\n */\nvar _default = {\n name: 'uniPopup',\n components: {},\n emits: ['change', 'maskClick'],\n props: {\n // 开启动画\n animation: {\n type: Boolean,\n default: true\n },\n // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层\n // message: 消息提示 ; dialog : 对话框\n type: {\n type: String,\n default: 'center'\n },\n // maskClick\n isMaskClick: {\n type: Boolean,\n default: null\n },\n // TODO 2 个版本后废弃属性 ,使用 isMaskClick\n maskClick: {\n type: Boolean,\n default: null\n },\n backgroundColor: {\n type: String,\n default: 'none'\n },\n safeArea: {\n type: Boolean,\n default: true\n },\n maskBackgroundColor: {\n type: String,\n default: 'rgba(0, 0, 0, 0.4)'\n },\n // 指定使用v-show指令,不重新渲染Pop组件\n onceRender: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n /**\n * 监听type类型\n */\n type: {\n handler: function handler(type) {\n if (!this.config[type]) return;\n this[this.config[type]](true);\n },\n immediate: true\n },\n isDesktop: {\n handler: function handler(newVal) {\n if (!this.config[newVal]) return;\n this[this.config[this.type]](true);\n },\n immediate: true\n },\n /**\n * 监听遮罩是否可点击\n * @param {Object} val\n */\n maskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n isMaskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n // H5 下禁止底部滚动\n showPopup: function showPopup(show) {}\n },\n data: function data() {\n return {\n duration: 300,\n ani: [],\n showPopup: false,\n showTrans: false,\n popupWidth: 0,\n popupHeight: 0,\n config: {\n top: 'top',\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n right: 'right',\n message: 'top',\n dialog: 'center',\n share: 'bottom'\n },\n maskClass: {\n position: 'fixed',\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)'\n },\n transClass: {\n position: 'fixed',\n left: 0,\n right: 0\n },\n maskShow: true,\n mkclick: true,\n popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'\n };\n },\n computed: {\n isDesktop: function isDesktop() {\n return this.popupWidth >= 500 && this.popupHeight >= 500;\n },\n bg: function bg() {\n if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n return 'transparent';\n }\n return this.backgroundColor;\n }\n },\n mounted: function mounted() {\n var _this = this;\n var fixSize = function fixSize() {\n var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),\n windowWidth = _uni$getSystemInfoSyn.windowWidth,\n windowHeight = _uni$getSystemInfoSyn.windowHeight,\n windowTop = _uni$getSystemInfoSyn.windowTop,\n safeArea = _uni$getSystemInfoSyn.safeArea,\n screenHeight = _uni$getSystemInfoSyn.screenHeight,\n safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n _this.popupWidth = windowWidth;\n _this.popupHeight = windowHeight + (windowTop || 0);\n // TODO fix by mehaotian 是否适配底部安全区 ,目前微信ios 、和 app ios 计算有差异,需要框架修复\n if (safeArea && _this.safeArea) {\n _this.safeAreaInsets = safeAreaInsets.bottom;\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n },\n // TODO vue2\n destroyed: function destroyed() {\n this.setH5Visible();\n },\n created: function created() {\n // this.mkclick = this.isMaskClick || this.maskClick\n if (this.isMaskClick === null && this.maskClick === null) {\n this.mkclick = true;\n } else {\n this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n }\n if (this.animation) {\n this.duration = 300;\n } else {\n this.duration = 0;\n }\n // TODO 处理 message 组件生命周期异常的问题\n this.messageChild = null;\n // TODO 解决头条冒泡的问题\n this.clearPropagation = false;\n this.maskClass.backgroundColor = this.maskBackgroundColor;\n },\n methods: {\n setH5Visible: function setH5Visible() {},\n /**\n * 公用方法,不显示遮罩层\n */\n closeMask: function closeMask() {\n this.maskShow = false;\n },\n /**\n * 公用方法,遮罩层禁止点击\n */\n disableMask: function disableMask() {\n this.mkclick = false;\n },\n // TODO nvue 取消冒泡\n clear: function clear(e) {\n e.stopPropagation();\n this.clearPropagation = true;\n },\n open: function open(direction) {\n // fix by mehaotian 处理快速打开关闭的情况\n if (this.showPopup) {\n clearTimeout(this.timer);\n this.showPopup = false;\n }\n var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n if (!(direction && innerType.indexOf(direction) !== -1)) {\n direction = this.type;\n }\n if (!this.config[direction]) {\n __f__(\"error\", '缺少类型:', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:285\");\n return;\n }\n this[this.config[direction]]();\n this.$emit('change', {\n show: true,\n type: direction\n });\n },\n close: function close(type) {\n var _this2 = this;\n this.showTrans = false;\n this.$emit('change', {\n show: false,\n type: this.type\n });\n clearTimeout(this.timer);\n // // 自定义关闭事件\n // this.customOpen && this.customClose()\n this.timer = setTimeout(function () {\n _this2.showPopup = false;\n }, 300);\n },\n // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容\n touchstart: function touchstart() {\n this.clearPropagation = false;\n },\n onTap: function onTap() {\n if (this.clearPropagation) {\n // fix by mehaotian 兼容 nvue\n this.clearPropagation = false;\n return;\n }\n this.$emit('maskClick');\n if (!this.mkclick) return;\n this.close();\n },\n /**\n * 顶部弹出样式处理\n */\n top: function top(type) {\n var _this3 = this;\n this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n this.ani = ['slide-top'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n this.$nextTick(function () {\n if (_this3.messageChild && _this3.type === 'message') {\n _this3.messageChild.timerClose();\n }\n });\n },\n /**\n * 底部弹出样式处理\n */\n bottom: function bottom(type) {\n this.popupstyle = 'bottom';\n this.ani = ['slide-bottom'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n paddingBottom: this.safeAreaInsets + 'px',\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n /**\n * 中间弹出样式处理\n */\n center: function center(type) {\n this.popupstyle = 'center';\n this.ani = ['zoom-out', 'fade'];\n this.transClass = {\n position: 'fixed',\n display: 'flex',\n flexDirection: 'column',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n justifyContent: 'center',\n alignItems: 'center'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n left: function left(type) {\n this.popupstyle = 'left';\n this.ani = ['slide-left'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n bottom: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n right: function right(type) {\n this.popupstyle = 'right';\n this.ani = ['slide-right'];\n this.transClass = {\n position: 'fixed',\n bottom: 0,\n right: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOlsibmFtZSIsImNvbXBvbmVudHMiLCJlbWl0cyIsInByb3BzIiwiYW5pbWF0aW9uIiwidHlwZSIsImRlZmF1bHQiLCJpc01hc2tDbGljayIsIm1hc2tDbGljayIsImJhY2tncm91bmRDb2xvciIsInNhZmVBcmVhIiwibWFza0JhY2tncm91bmRDb2xvciIsIm9uY2VSZW5kZXIiLCJ3YXRjaCIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJpc0Rlc2t0b3AiLCJzaG93UG9wdXAiLCJkYXRhIiwiZHVyYXRpb24iLCJhbmkiLCJzaG93VHJhbnMiLCJwb3B1cFdpZHRoIiwicG9wdXBIZWlnaHQiLCJjb25maWciLCJ0b3AiLCJib3R0b20iLCJjZW50ZXIiLCJsZWZ0IiwicmlnaHQiLCJtZXNzYWdlIiwiZGlhbG9nIiwic2hhcmUiLCJtYXNrQ2xhc3MiLCJwb3NpdGlvbiIsInRyYW5zQ2xhc3MiLCJtYXNrU2hvdyIsIm1rY2xpY2siLCJwb3B1cHN0eWxlIiwiY29tcHV0ZWQiLCJiZyIsIm1vdW50ZWQiLCJ1bmkiLCJ3aW5kb3dXaWR0aCIsIndpbmRvd0hlaWdodCIsIndpbmRvd1RvcCIsInNjcmVlbkhlaWdodCIsInNhZmVBcmVhSW5zZXRzIiwiZml4U2l6ZSIsImRlc3Ryb3llZCIsImNyZWF0ZWQiLCJtZXRob2RzIiwic2V0SDVWaXNpYmxlIiwiY2xvc2VNYXNrIiwiZGlzYWJsZU1hc2siLCJjbGVhciIsImUiLCJvcGVuIiwiY2xlYXJUaW1lb3V0IiwiZGlyZWN0aW9uIiwic2hvdyIsImNsb3NlIiwidG91Y2hzdGFydCIsIm9uVGFwIiwicGFkZGluZ0JvdHRvbSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkEsZUF1QkE7RUFDQUE7RUFDQUMsYUFJQTtFQUNBQztFQUNBQztJQUNBO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0FEO01BQ0FBO01BQ0FDO0lBQ0E7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0lBQ0FJO01BQ0FMO01BQ0FDO0lBQ0E7SUFDQUs7TUFDQU47TUFDQUM7SUFDQTtJQUNBO0lBQ0FNO01BQ0FQO01BQ0FDO0lBQ0E7RUFDQTtFQUVBTztJQUNBO0FBQ0E7QUFDQTtJQUNBUjtNQUNBUztRQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO1FBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBUDtNQUNBTTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBUjtNQUNBTztRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFLHFDQUtBO0VBQ0E7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBSDtNQUNBSTtNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FSO1FBQ0FEO1FBQ0FHO1FBQ0FDO1FBQ0FwQjtNQUNBO01BQ0EwQjtRQUNBRDtRQUNBTjtRQUNBQztNQUNBO01BQ0FPO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBdkI7TUFDQTtJQUNBO0lBQ0F3QjtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7TUFDQSw0QkFPQUM7UUFOQUM7UUFDQUM7UUFDQUM7UUFDQW5DO1FBQ0FvQztRQUNBQztNQUVBO01BQ0E7TUFDQTtNQUNBO1FBS0E7TUFFQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztFQU9BO0VBRUE7RUFDQUM7SUFDQTtFQUNBO0VBUUFDO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7TUFDQTtJQUNBO0lBQ0E7TUFDQTtJQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQyx1Q0FLQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFFQUM7TUFFQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBQztRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQXZEO01BQ0E7SUFDQTtJQUNBd0Q7TUFBQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQXZEO01BQ0E7TUFDQXFEO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUk7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0F0QztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FTO1FBQ0FOO1FBQ0FDO1FBQ0FwQjtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO1FBQ0FRO1FBQ0FOO1FBQ0FDO1FBQ0FIO1FBQ0FzQztRQUNBdkQ7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWtCO01BQ0E7TUFDQTtNQUNBO1FBQ0FPO1FBRUErQjtRQUNBQztRQUVBeEM7UUFDQUU7UUFDQUM7UUFDQUo7UUFDQTBDO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0F4QztNQUNBO01BQ0E7TUFDQTtRQUNBTTtRQUNBTjtRQUNBRjtRQUNBRDtRQUNBaEI7UUFFQXdEO1FBQ0FDO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FyQztNQUNBO01BQ0E7TUFDQTtRQUNBSztRQUNBUjtRQUNBRztRQUNBSjtRQUNBaEI7UUFFQXdEO1FBQ0FDO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyB2LWlmPVwic2hvd1BvcHVwfHxvbmNlUmVuZGVyXCIgdi1zaG93PVwic2hvd1BvcHVwXCIgIGNsYXNzPVwidW5pLXBvcHVwXCIgOmNsYXNzPVwiW3BvcHVwc3R5bGUsIGlzRGVza3RvcCA/ICdmaXhmb3JwYy16LWluZGV4JyA6ICcnXVwiPlxuXHRcdDx2aWV3IEB0b3VjaHN0YXJ0PVwidG91Y2hzdGFydFwiPlxuXHRcdFx0PHVuaS10cmFuc2l0aW9uIGtleT1cIjFcIiB2LWlmPVwibWFza1Nob3dcIiBuYW1lPVwibWFza1wiIG1vZGUtY2xhc3M9XCJmYWRlXCIgOnN0eWxlcz1cIm1hc2tDbGFzc1wiXG5cdFx0XHRcdDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiIC8+XG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCJcblx0XHRcdFx0OnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiIDpvbmNlLXJlbmRlcj1cIm9uY2VSZW5kZXJcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktcG9wdXBfX3dyYXBwZXJcIiA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogYmcgfVwiIDpjbGFzcz1cIltwb3B1cHN0eWxlXVwiIEBjbGljaz1cImNsZWFyXCI+XG5cdFx0XHRcdFx0PHNsb3QgLz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC91bmktdHJhbnNpdGlvbj5cblx0XHQ8L3ZpZXc+XG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XG5cdFx0PGtleXByZXNzIHYtaWY9XCJtYXNrU2hvd1wiIEBlc2M9XCJvblRhcFwiIC8+XG5cdFx0PCEtLSAjZW5kaWYgLS0+XG5cdDwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cdC8vICNpZmRlZiBINVxuXHRpbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcblx0Ly8gI2VuZGlmXG5cblx0LyoqXG5cdCAqIFBvcFVwIOW8ueWHuuWxglxuXHQgKiBAZGVzY3JpcHRpb24g5by55Ye65bGC57uE5Lu277yM5Li65LqG6Kej5Yaz6YGu572p5by55bGC55qE6Zeu6aKYXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zMjlcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbdG9wfGNlbnRlcnxib3R0b218bGVmdHxyaWdodHxtZXNzYWdlfGRpYWxvZ3xzaGFyZV0g5by55Ye65pa55byPXG5cdCAqIFx0QHZhbHVlIHRvcCDpobbpg6jlvLnlh7pcblx0ICogXHRAdmFsdWUgY2VudGVyIOS4remXtOW8ueWHulxuXHQgKiBcdEB2YWx1ZSBib3R0b20g5bqV6YOo5by55Ye6XG5cdCAqIFx0QHZhbHVlIGxlZnRcdFx05bem5L6n5by55Ye6XG5cdCAqIFx0QHZhbHVlIHJpZ2h0ICDlj7PkvqflvLnlh7pcblx0ICogXHRAdmFsdWUgbWVzc2FnZSDmtojmga/mj5DnpLpcblx0ICogXHRAdmFsdWUgZGlhbG9nIOWvueivneahhlxuXHQgKiBcdEB2YWx1ZSBzaGFyZSDlupXpg6jliIbkuqvnpLrkvotcblx0ICogQHByb3BlcnR5IHtCb29sZWFufSBhbmltYXRpb24gPSBbdHJ1ZXxmYWxzZV0g5piv5ZCm5byA5ZCv5Yqo55S7XG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gbWFza0NsaWNrID0gW3RydWV8ZmFsc2VdIOiSmeeJiOeCueWHu+aYr+WQpuWFs+mXreW8ueeqlyjlup/lvIMpXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gaXNNYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgYmFja2dyb3VuZENvbG9yIOS4u+eql+WPo+iDjOaZr+iJslxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gIG1hc2tCYWNrZ3JvdW5kQ29sb3Ig6JKZ54mI6aKc6ImyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gc2FmZUFyZWFcdFx0ICAg5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6XG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNoYW5nZSDmiZPlvIDlhbPpl63lvLnnqpfop6blj5HvvIxlPXtzaG93OiBmYWxzZX1cblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gbWFza0NsaWNrIOeCueWHu+mBrue9qeinpuWPkVxuXHQgKi9cblxuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0bmFtZTogJ3VuaVBvcHVwJyxcblx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHQvLyAjaWZkZWYgSDVcblx0XHRcdGtleXByZXNzXG5cdFx0XHQvLyAjZW5kaWZcblx0XHR9LFxuXHRcdGVtaXRzOiBbJ2NoYW5nZScsICdtYXNrQ2xpY2snXSxcblx0XHRwcm9wczoge1xuXHRcdFx0Ly8g5byA5ZCv5Yqo55S7XG5cdFx0XHRhbmltYXRpb246IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguexu+Wei++8jOWPr+mAieWAvO+8jHRvcDog6aG26YOo5by55Ye65bGC77ybYm90dG9t77ya5bqV6YOo5by55Ye65bGC77ybY2VudGVy77ya5YWo5bGP5by55Ye65bGCXG5cdFx0XHQvLyBtZXNzYWdlOiDmtojmga/mj5DnpLogOyBkaWFsb2cgOiDlr7nor53moYZcblx0XHRcdHR5cGU6IHtcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0XHRkZWZhdWx0OiAnY2VudGVyJ1xuXHRcdFx0fSxcblx0XHRcdC8vIG1hc2tDbGlja1xuXHRcdFx0aXNNYXNrQ2xpY2s6IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxuXHRcdFx0fSxcblx0XHRcdC8vIFRPRE8gMiDkuKrniYjmnKzlkI7lup/lvIPlsZ7mgKcg77yM5L2/55SoIGlzTWFza0NsaWNrXG5cdFx0XHRtYXNrQ2xpY2s6IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxuXHRcdFx0fSxcblx0XHRcdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRcdGRlZmF1bHQ6ICdub25lJ1xuXHRcdFx0fSxcblx0XHRcdHNhZmVBcmVhOiB7XG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcblx0XHRcdH0sXG5cdFx0XHRtYXNrQmFja2dyb3VuZENvbG9yOiB7XG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdFx0ZGVmYXVsdDogJ3JnYmEoMCwgMCwgMCwgMC40KSdcblx0XHRcdH0sXG5cdFx0XHQvLyDmjIflrprkvb/nlKh2LXNob3fmjIfku6TvvIzkuI3ph43mlrDmuLLmn5NQb3Dnu4Tku7Zcblx0XHRcdG9uY2VSZW5kZXI6e1xuXHRcdFx0XHR0eXBlOkJvb2xlYW4sXG5cdFx0XHRcdGRlZmF1bHQ6ZmFsc2Vcblx0XHRcdH0sXG5cdFx0fSxcblxuXHRcdHdhdGNoOiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIOebkeWQrHR5cGXnsbvlnotcblx0XHRcdCAqL1xuXHRcdFx0dHlwZToge1xuXHRcdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXG5cdFx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcblx0XHRcdFx0fSxcblx0XHRcdFx0aW1tZWRpYXRlOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0aXNEZXNrdG9wOiB7XG5cdFx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xuXHRcdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXG5cdFx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxuXHRcdFx0ICovXG5cdFx0XHRtYXNrQ2xpY2s6IHtcblx0XHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XG5cdFx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdGlzTWFza0NsaWNrOiB7XG5cdFx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xuXHRcdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcblx0XHRcdHNob3dQb3B1cChzaG93KSB7XG5cdFx0XHRcdC8vICNpZmRlZiBINVxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcblx0XHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xuXHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRkdXJhdGlvbjogMzAwLFxuXHRcdFx0XHRhbmk6IFtdLFxuXHRcdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxuXHRcdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxuXHRcdFx0XHRwb3B1cFdpZHRoOiAwLFxuXHRcdFx0XHRwb3B1cEhlaWdodDogMCxcblx0XHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdFx0dG9wOiAndG9wJyxcblx0XHRcdFx0XHRib3R0b206ICdib3R0b20nLFxuXHRcdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXG5cdFx0XHRcdFx0bGVmdDogJ2xlZnQnLFxuXHRcdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxuXHRcdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxuXHRcdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXG5cdFx0XHRcdFx0c2hhcmU6ICdib3R0b20nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1hc2tDbGFzczoge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRyYW5zQ2xhc3M6IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHJpZ2h0OiAwXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1hc2tTaG93OiB0cnVlLFxuXHRcdFx0XHRta2NsaWNrOiB0cnVlLFxuXHRcdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHRpc0Rlc2t0b3AoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXG5cdFx0XHR9LFxuXHRcdFx0YmcoKSB7XG5cdFx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xuXHRcdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRtb3VudGVkKCkge1xuXHRcdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcblx0XHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRcdHdpbmRvd1dpZHRoLFxuXHRcdFx0XHRcdHdpbmRvd0hlaWdodCxcblx0XHRcdFx0XHR3aW5kb3dUb3AsXG5cdFx0XHRcdFx0c2FmZUFyZWEsXG5cdFx0XHRcdFx0c2NyZWVuSGVpZ2h0LFxuXHRcdFx0XHRcdHNhZmVBcmVhSW5zZXRzXG5cdFx0XHRcdH0gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxuXHRcdFx0XHR0aGlzLnBvcHVwV2lkdGggPSB3aW5kb3dXaWR0aFxuXHRcdFx0XHR0aGlzLnBvcHVwSGVpZ2h0ID0gd2luZG93SGVpZ2h0ICsgKHdpbmRvd1RvcCB8fCAwKVxuXHRcdFx0XHQvLyBUT0RPIGZpeCBieSBtZWhhb3RpYW4g5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6ICznm67liY3lvq7kv6Fpb3Mg44CB5ZKMIGFwcCBpb3Mg6K6h566X5pyJ5beu5byC77yM6ZyA6KaB5qGG5p625L+u5aSNXG5cdFx0XHRcdGlmIChzYWZlQXJlYSAmJiB0aGlzLnNhZmVBcmVhKSB7XG5cdFx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxuXHRcdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cblx0XHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxuXHRcdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cblx0XHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNhZmVBcmVhSW5zZXRzID0gMFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRmaXhTaXplKClcblx0XHRcdC8vICNpZmRlZiBINVxuXHRcdFx0Ly8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpeFNpemUpXG5cdFx0XHQvLyB0aGlzLiRvbmNlKCdob29rOmJlZm9yZURlc3Ryb3knLCAoKSA9PiB7XG5cdFx0XHQvLyBcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxuXHRcdFx0Ly8gfSlcblx0XHRcdC8vICNlbmRpZlxuXHRcdH0sXG5cdFx0Ly8gI2lmbmRlZiBWVUUzXG5cdFx0Ly8gVE9ETyB2dWUyXG5cdFx0ZGVzdHJveWVkKCkge1xuXHRcdFx0dGhpcy5zZXRINVZpc2libGUoKVxuXHRcdH0sXG5cdFx0Ly8gI2VuZGlmXG5cdFx0Ly8gI2lmZGVmIFZVRTNcblx0XHQvLyBUT0RPIHZ1ZTNcblx0XHR1bm1vdW50ZWQoKSB7XG5cdFx0XHR0aGlzLnNldEg1VmlzaWJsZSgpXG5cdFx0fSxcblx0XHQvLyAjZW5kaWZcblx0XHRjcmVhdGVkKCkge1xuXHRcdFx0Ly8gdGhpcy5ta2NsaWNrID0gIHRoaXMuaXNNYXNrQ2xpY2sgfHwgdGhpcy5tYXNrQ2xpY2tcblx0XHRcdGlmICh0aGlzLmlzTWFza0NsaWNrID09PSBudWxsICYmIHRoaXMubWFza0NsaWNrID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHRydWVcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHRoaXMuaXNNYXNrQ2xpY2sgIT09IG51bGwgPyB0aGlzLmlzTWFza0NsaWNrIDogdGhpcy5tYXNrQ2xpY2tcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmFuaW1hdGlvbikge1xuXHRcdFx0XHR0aGlzLmR1cmF0aW9uID0gMzAwXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmR1cmF0aW9uID0gMFxuXHRcdFx0fVxuXHRcdFx0Ly8gVE9ETyDlpITnkIYgbWVzc2FnZSDnu4Tku7bnlJ/lkb3lkajmnJ/lvILluLjnmoTpl67pophcblx0XHRcdHRoaXMubWVzc2FnZUNoaWxkID0gbnVsbFxuXHRcdFx0Ly8gVE9ETyDop6PlhrPlpLTmnaHlhpLms6HnmoTpl67pophcblx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXG5cdFx0XHR0aGlzLm1hc2tDbGFzcy5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLm1hc2tCYWNrZ3JvdW5kQ29sb3Jcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdHNldEg1VmlzaWJsZSgpIHtcblx0XHRcdFx0Ly8gI2lmZGVmIEg1XG5cdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5aSE55CGIGg1IOa7muWKqOepv+mAj+eahOmXrumimFxuXHRcdFx0XHRkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnXG5cdFx0XHRcdC8vICNlbmRpZlxuXHRcdFx0fSxcblx0XHRcdC8qKlxuXHRcdFx0ICog5YWs55So5pa55rOV77yM5LiN5pi+56S66YGu572p5bGCXG5cdFx0XHQgKi9cblx0XHRcdGNsb3NlTWFzaygpIHtcblx0XHRcdFx0dGhpcy5tYXNrU2hvdyA9IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDlhaznlKjmlrnms5XvvIzpga7nvanlsYLnpoHmraLngrnlh7tcblx0XHRcdCAqL1xuXHRcdFx0ZGlzYWJsZU1hc2soKSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0Ly8gVE9ETyBudnVlIOWPlua2iOWGkuazoVxuXHRcdFx0Y2xlYXIoZSkge1xuXHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXG5cdFx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKClcblx0XHRcdFx0Ly8gI2VuZGlmXG5cdFx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IHRydWVcblx0XHRcdH0sXG5cblx0XHRcdG9wZW4oZGlyZWN0aW9uKSB7XG5cdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5aSE55CG5b+r6YCf5omT5byA5YWz6Zet55qE5oOF5Ya1XG5cdFx0XHRcdGlmICh0aGlzLnNob3dQb3B1cCkge1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuXHRcdFx0XHRcdHRoaXMuc2hvd1BvcHVwID0gZmFsc2Vcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cblx0XHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xuXHRcdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xuXHRcdFx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Y2xvc2UodHlwZSkge1xuXHRcdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcblx0XHRcdFx0XHRzaG93OiBmYWxzZSxcblx0XHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcblx0XHRcdFx0fSlcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXG5cdFx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxuXHRcdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXG5cdFx0XHRcdH0sIDMwMClcblx0XHRcdH0sXG5cdFx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcblx0XHRcdHRvdWNoc3RhcnQoKSB7XG5cdFx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXG5cdFx0XHR9LFxuXG5cdFx0XHRvblRhcCgpIHtcblx0XHRcdFx0aWYgKHRoaXMuY2xlYXJQcm9wYWdhdGlvbikge1xuXHRcdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5YW85a65IG52dWVcblx0XHRcdFx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSBmYWxzZVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuJGVtaXQoJ21hc2tDbGljaycpXG5cdFx0XHRcdGlmICghdGhpcy5ta2NsaWNrKSByZXR1cm5cblx0XHRcdFx0dGhpcy5jbG9zZSgpXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDpobbpg6jlvLnlh7rmoLflvI/lpITnkIZcblx0XHRcdCAqL1xuXHRcdFx0dG9wKHR5cGUpIHtcblx0XHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gdGhpcy5pc0Rlc2t0b3AgPyAnZml4Zm9ycGMtdG9wJyA6ICd0b3AnXG5cdFx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS10b3AnXVxuXHRcdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XG5cdFx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXG5cdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5tZXNzYWdlQ2hpbGQgJiYgdGhpcy50eXBlID09PSAnbWVzc2FnZScpIHtcblx0XHRcdFx0XHRcdHRoaXMubWVzc2FnZUNoaWxkLnRpbWVyQ2xvc2UoKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOW6lemDqOW8ueWHuuagt+W8j+WkhOeQhlxuXHRcdFx0ICovXG5cdFx0XHRib3R0b20odHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnYm90dG9tJ1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtYm90dG9tJ11cblx0XHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxuXHRcdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXG5cdFx0XHRcdFx0Ym90dG9tOiAwLFxuXHRcdFx0XHRcdHBhZGRpbmdCb3R0b206IHRoaXMuc2FmZUFyZWFJbnNldHMgKyAncHgnLFxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xuXHRcdFx0XHRpZiAodHlwZSkgcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOS4remXtOW8ueWHuuagt+W8j+WkhOeQhlxuXHRcdFx0ICovXG5cdFx0XHRjZW50ZXIodHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnY2VudGVyJ1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnem9vbS1vdXQnLCAnZmFkZSddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxuXHRcdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuXHRcdFx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHJpZ2h0OiAwLFxuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcidcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0bGVmdCh0eXBlKSB7XG5cdFx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdsZWZ0J1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtbGVmdCddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxuXHRcdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cblx0XHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXG5cdFx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcblx0XHRcdFx0XHQvKiAjZW5kaWYgKi9cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0cmlnaHQodHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAncmlnaHQnXG5cdFx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1yaWdodCddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRib3R0b206IDAsXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXG5cdFx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZyxcblx0XHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxuXHRcdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nXG5cdFx0XHRcdFx0LyogI2VuZGlmICovXG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXG5cdFx0XHRcdGlmICh0eXBlKSByZXR1cm5cblx0XHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXG5cdFx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG48c3R5bGUgbGFuZz1cInNjc3NcIj5cblx0LnVuaS1wb3B1cCB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cblx0XHR6LWluZGV4OiA5OTtcblxuXHRcdC8qICNlbmRpZiAqL1xuXHRcdCYudG9wLFxuXHRcdCYubGVmdCxcblx0XHQmLnJpZ2h0IHtcblx0XHRcdC8qICNpZmRlZiBINSAqL1xuXHRcdFx0dG9wOiB2YXIoLS13aW5kb3ctdG9wKTtcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0LyogI2VuZGlmICovXG5cdFx0fVxuXG5cdFx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQvKiBpcGhvbmV4IOetieWuieWFqOWMuuiuvue9ru+8jOW6lemDqOWuieWFqOWMuumAgumFjSAqL1xuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xuXHRcdFx0Ly8gcGFkZGluZy1ib3R0b206IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuXHRcdFx0Ly8gcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0Ji5sZWZ0LFxuXHRcdFx0Ji5yaWdodCB7XG5cdFx0XHRcdC8qICNpZmRlZiBINSAqL1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0td2luZG93LXRvcCk7XG5cdFx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0XHQvKiAjaWZuZGVmIEg1ICovXG5cdFx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0XHQvKiAjZW5kaWYgKi9cblx0XHRcdFx0ZmxleDogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZml4Zm9ycGMtei1pbmRleCB7XG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xuXHRcdHotaW5kZXg6IDk5OTtcblx0XHQvKiAjZW5kaWYgKi9cblx0fVxuXG5cdC5maXhmb3JwYy10b3Age1xuXHRcdHRvcDogMDtcblx0fVxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///71\n");
- /***/ })
- ],[[0,"app-config"]]]);
|